Struts动作

你的名字 2022-07-12 10:40 292阅读 0赞

动作(action)的作用

  1. 动作最重要的作用是给定请求封装需要做的实际工作,第二个作用是从请求到视图的框架数据传输中作为数据的携带者,最后一个作用就是决定那个结果应该呈现给请求响应中返回的视图。

1 动作封装工作单元

  1. 动作的主要职责是控制业务逻辑,使用execute()方法来实现,这个方法应该只关注与请求相关的工作逻辑。

2 动作作为数据转移场所

  1. 动作是框架的模型组件,所以动作必须能够携带数据。

3 动作为结果路由选择返回控制字符串

  1. 动作的最后一个职责是返回控制字符串来确定要呈现的结果视图。

包(package)

  1. 框架会把一些动作组件和其他组件放到一起叫做包(package)。包的四种属性--name(包的名字),namespace(包中所有动作的命名空间),extends(继承的父包),abstract(如果为true,不能定义动作,只能定义可被继承的组件)。只有name是必须的。
  2. 如果不设置namespace的值,那么就是默认的命名空间,比其他的命名空间都低,只有在其他命名空间找不到猜到默认的命名空间找。默认命名空间实际上是空字符串“”。还有就是“/”的根命名空间,这个要完全匹配才能找到动作。
  3. extends相当于java的继承,当前包可以覆盖父包的成员,还可以使用父包的成员。有一个默认包叫做struts-default可以继承。

实现动作

1 可选Action接口

  1. Action接口中有一个方法String execute() throws Exception。由于框架没有要求,所以不用实现这个接口也没关系,直接把这个方法放到类中。Action定义了一些常量。
  2. public static final String ERROR="error"
  3. public static final String INPUT="input"
  4. public static final String LOGIN="login"
  5. public static final String NONE="none"
  6. public static final String SUCCESS="success"
  7. 转发的话,就不用写动作实现类了,Struts2提供默认的动作实现,这个默认动作有一个空execute()方法,自动返回SUCCESS,其他什么都不做。结果的默认值也是SUCCESS
  8. <action name="hello">
  9. <result>/hello.jsp</result>
  10. </action>

2 ActionSupport类

  1. 作为一个支持类,ActionSupport类提供了几个重要接口的默认实现。

2.1 基本验证

  1. ActionSupport实现了两个接口来与默认拦截器栈DefaultWorkflowInterceptor配合提供验证。struts-default包中有继承这个包就能用默认拦截器栈了。动作实现类继承ActionSupport就可以提供验证了。
  2. 当这个拦截器触发了,会在动作中调用validate()方法。这个方法是ActionSupport实现的,我们要覆盖掉。
  3. addFieldError(String fieldName,String errorMessage)//用来添加validate方法中的错误信息。
  4. addActionError(String errorMessage)
  5. 如果有错误会重定向到结果为Input的页面。错误结果是通过ui标签注入的。

2.2 本地化信息文本

  1. 把错误信息写到一个properties文件中,用到的时候再去取,这样不用修改代码,只要修改配置文件就行了。

向对象传递数据

1.对象支持的JavaBean属性

  1. Struts2提供了强大的数据转移和类型转换工具让数据转移到对象的属性中。
  2. private User user;
  3. public User getUser(){
  4. return User;
  5. }
  6. public void setUser(User user){
  7. this.user=user;
  8. }

2.ModelDriven

  1. implements ModelDriven接口,通过getModel()方法返回对象。使用这个方法是要先初始化对象。
  2. private User user = new User();
  3. public Object getModel(){
  4. return user;
  5. }

文件上传拦截器

  1. 默认拦截器栈中包含了FileUploadInterceptor拦截器。params拦截器负责将所有的参数转移到动作对象中。在上传拦截器的后面,因为上传是一个多重请求,并且将文件和一些元数据一起转换到请求参数中。fileupload拦截器拦截File--被上传的文件,contextType---String文件的内容类型,FileName-----String存储在服务器上的上传文件名这些参数后,params拦截器把剩下的参数转换到对象上。
  2. 当上传多个文件时把对象里面的属性换位数组就行。

发表评论

表情:
评论列表 (有 0 条评论,292人围观)

还没有评论,来说两句吧...

相关阅读

    相关 tableau 集动作_集动作

    使用集动作,受众将能直接与您的可视化项或仪表板交互,从而控制其分析的各个方面。当用户在视图中选择标记时,集动作可以更改集中的值。有关如何才能使用集动作的示例,请参见集动作的示例

    相关 JSP 动作

    JSP动作元素在请求处理阶段起作用。 利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。 JSP动作的语

    相关 Struts动作

    动作(action)的作用             动作最重要的作用是给定请求封装需要做的实际工作,第二个作用是从请求到视图的框架数据传输中作为数据的携带者,最后一个作用

    相关 JSP动作元素

    格式: <jsp:action_name attribute="value" /> include动作: 该动作元素用来包含静态和动态的文件。把指定文件插入正在生成的页...

    相关 JSP useBean动作

    <jsp:useBean > 动作标记用于在 JSP 页面中创建 bean 实例,并且通过设置相关属性,可以将该实例存储到指定的范围。如果在指定的范围已经存在该 bean...

    相关 JSP动作

    JSP 动作利用 XML 语法格式的标记来控制服务器的行为,完成各种通用的 JSP 页面功能,也可以实现一些处理复杂业务逻辑的专用功能。如利用 JSP 动作可以动态地插入...