`
lvbo744
  • 浏览: 43886 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Action调用前缀详解

阅读更多
org.apache.struts2.dispatcher.mapper.DefaultActionMapper类在创建ActionMapping时,为协助请求发送提供了四种不同的前缀,这些前缀使得用户在发送请求的时候更加机动和灵活,包括:
Method前缀      Action前缀          Redirect前缀         Redirect-action前缀

这些前缀必须和struts2自带的自定义标签一起使用,struts2自定义标签的描述文件(tld)在struts2-core-版本号.jar包的META-INF目录下,复制到工程的WEB-INF目录中 然后在jsp页面中添加下面代码移用:

<%@ taglib uri=”/WEB-INF/struts-tags.tld” prefix=”s” %>

1、Method前缀

      Method前缀用于指定调用Action的哪个方法,格式如下:<s:submit name=”method:方法名称” />。在Action中如果定义了多个方法,除了可以通过上一章讲到的配置struts.xml指定要调用的方法以外,直接在视图层指定也是一个不错的选择,但是,在配置文件中指定具有更好的维护性

我们在StrutsAction 类中仍然有两个方法insertStudent 和updateStudent

使用Method前缀可以这样配置:

struts.xml中  配置name class属性 即可(这里没有太大区别,主要是视图层的变化)

在jsp页面中需要使用struts2自带标签如下:

<s:form action=”strutsAction “>

       <s:submit name=”method:insertStudent ” value=”提交”></s:submit>

        <s:submit name=”method:updateStudent” value=”提交”></s:submit>

</s:form>

通过<s:form action=” strutsAction ” />指定要调用的Action,在<s:submit/>标签中,设置name属性,第一个按钮调用insertStudent ()方法,第二个按钮调用updateStudent()方法

当我们查看生成的html源代码时我们发现多了一些表格布局,在struts2中为标签使用了默认的主题方式为排版带来方便

我们也可以取消默认的设置<s:form action=”methodPrefixAction” theme=”simple”>可以替换默认主题

2、Action前缀

    Action前缀可以改变表单的提交行为。<form>的action属性决定了请求的目的地,一般是不会更改的,但是,Action前缀可以做到。如果一个表单有多个提交按钮,Action前缀很有用。当然,用javascript也可以实现相同的效果。Action前缀同样定义在<s:submit>的name属性中,格式为:action:Action的配置名称

这里我们举个例子 有两个Action类Action1 和Action2对应的是两个行为Action1对应的是注册;Action2对应的是登陆。 在struts.xml文件中的name分别为action1 和action2

在jsp页面中的表单如下:

<s:form theme=”simple” action=”action1″>

        用户名:<s:textfield name=”user.username”></s:textfield><br>

        密码:<s:password name=”user.password”></s:password><br>

        <s:submit value=”注册”></s:submit>

        <s:submit name=”action:action2″ value=”登陆”></s:submit>

    </s:form>

这样我们实现了一个表单多个提交按钮的操作 注意:Action前缀 是针对两个Action类的行为(如果有不对还望斧批)

3、Redirect前缀 和 Redirect-action前缀

     Redirect前缀和Redirect-action前缀分别用于将请求重定向到URL或Action。从内部实现看,Redirect前缀通过org.apache.struts2.dispatcher.ServletRedirectResult类重定向URL,而Redirect-action前缀则通过org.apache.struts2.dispatcher.ServletActionRedirectResult类重定向Action.

Redirect前缀的格式为:<s:submit name=”redirect:url”></s:submit>

Redirect-action前缀的格式为:<s:submit name=”redirect-action:action-name”></s:submit>

这里的例子并不是局限于使用<s:submit>标签  Redirect前缀 和 Redirect-action前缀 不提交表单 只做页面重定向

分享到:
评论

相关推荐

    SAP调用外部WebService.docx编程资料

    ### SAP调用外部WebService知识点详解 #### 一、概述 SAP系统中调用外部WebService是一种常见的集成场景,主要用于实现SAP系统与非SAP系统的数据交换或业务流程交互。本文将详细介绍如何在SAP系统中配置并调用外部...

    Struts_config.xml详解

    - 为填充当前Action关联的FormBean时指定的前缀。例如,如果请求参数名为“username”并且`prefix`属性被设置为“search”,则将调用名为`setSearchUsername()`的方法来填充FormBean。需要注意的是,只有当`name`...

    java调用webservice实例

    ### Java调用WebService实例解析与知识点详解 #### 核心概念与原理 在现代软件开发中,服务端之间以及客户端和服务端之间的通信是至关重要的。Web Service作为一种标准的、跨平台的服务实现方式,允许不同语言编写...

    struts1属性详解

    8. **validate**: 如果`validate`属性设置为`true`,那么在调用`Action`之前,对应的`ActionForm`的`validate()`方法会被自动调用,用于验证用户输入的数据。 9. **unknown**: `unknown`属性用于处理未找到匹配的`...

    Android_Intent和Intent_Filter详解

    一般来讲,定义自己的 Action 字符串应该以应用程序的包名为前缀(防止重复定义)。由于 Action 部分很大程度上决定了一个 Intent 的内容,所以自己定义的 Action 字符串应该能够一眼看出其意图。一个 intent 对象的...

    Struts2的常量详解

    默认映射器`DefaultActionMapper`根据请求URL的前缀和Action的name属性进行映射。 13. **struts.action.extension**: 指定Struts2处理的请求URL后缀,默认为"action"。若需处理多个后缀,可以用逗号分隔。 14. **...

    Struts2属性文件详解

    该属性用于指定HTTP请求与指定Action之间的映射器,默认映射器为`org.apache.struts2.dispatcher.mapper.DefaultActionMapper`,它根据请求的前缀与Action的name属性完成映射。 #### struts.action.extension 此...

    LookUpDispachAction的用法详解

    LookUpDispatchAction是Struts 1中的一个特殊类型的Action,它提供了更灵活的请求映射方式,允许我们根据请求参数的不同来调用不同的业务处理方法。下面将详细介绍LookUpDispatchAction的使用方法以及其在Struts应用...

    struts.xml详解.doc

    `name`属性是Action的标识,`class`指定Action类的全限定名,`method`则指定了要调用的Action方法。Action可以被多次映射,只要每次映射的`name`不同。 10. **result标签**: `&lt;result&gt;`是Action的结果,它定义了...

    struts2标签详解.pdf

    10. `&lt;s:action&gt;`:用于调用其他action,并且可以访问其他action返回的结果。例如:`&lt;s:action name="Welcome" executeResult="true"/&gt;`,调用Welcome这个action,并且执行它的结果。 Struts2框架的标签库提供了...

    struts.xml文件详解

    - `&lt;action&gt;` 元素定义了一个具体的业务操作,`name` 是 Action 的名称,`class` 是对应 Action 类的路径,`method` 是要调用的方法。 - `&lt;interceptor-ref&gt;` 在 Action 中引用拦截器,覆盖默认拦截器栈。 10. **...

    Struts2之命名空间详解及JSP文件上传了解案例struts009

    命名空间是Struts2配置的一部分,它定义了一组Action的集合,并为这些Action提供了一个唯一的路径前缀。在Struts2的配置文件(通常为struts.xml或struts-plugin.xml)中,你可以定义多个命名空间,每个命名空间下...

    struts2标签详解

    ### Struts2 标签详解 #### 一、引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建健壮的 Web 应用程序。其中,Struts2 标签库是框架的重要组成部分之一,能够显著提高开发...

    ThinkPHP之R方法实例详解

    如果目标方法位于另一个项目中,可以使用项目前缀进行调用: ```php $data = R('Admin://User/detail', array('5')); ``` #### 五、R方法与控制器层的关联 除了上述基本的调用方式外,R方法还支持指定控制器层...

    Spring中MVC模块代码详解

    -- JSP前缀--&gt; &lt;value&gt;.jsp&lt;/value&gt; &lt;!-- JSP后缀--&gt; ``` 四、URL Mapping 在Spring MVC中,URL Mapping是将用户请求映射到实际的Controller方法的过程。URL Mapping可以配置在spring-action.xml文件中,...

    研磨struts2

    它负责初始化 Struts2 的环境,并调用相应的 Action 处理器。 3. **ActionMapper**:根据请求的 URL 确定哪个 Action 类负责处理这个请求。 4. **ActionInvocation**:通过 ActionProxy 创建 ActionInvocation 实例...

    挺不错的深入学习struts2资料

    - **指定namespace**:例如:`namespace="/manage"`,所有属于该命名空间的Action的请求路径都会带上命名空间前缀。 **示例**: ```xml &lt;action name="backLogin" class=...

    Activiti23张表详解

    ### Activiti23张表详解 #### 一、概述 Activiti是一款开源的工作流引擎,基于Java语言开发,主要用于管理业务流程。它提供了一套完整的API来定义和执行流程,并支持BPMN 2.0标准。为了实现这些功能,Activiti在...

    struts源码学习.pdf

    - **存储位置**:这个唯一的`RequestProcessor`实例会被存储在`ActionServlet`的一个属性中,其键名为`"org.apache.struts.action.REQUEST_PROCESSOR"`加上当前模块配置文件的前缀(如`config.getPrefix()`)。...

Global site tag (gtag.js) - Google Analytics