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知识点详解 #### 一、概述 SAP系统中调用外部WebService是一种常见的集成场景,主要用于实现SAP系统与非SAP系统的数据交换或业务流程交互。本文将详细介绍如何在SAP系统中配置并调用外部...
- 为填充当前Action关联的FormBean时指定的前缀。例如,如果请求参数名为“username”并且`prefix`属性被设置为“search”,则将调用名为`setSearchUsername()`的方法来填充FormBean。需要注意的是,只有当`name`...
### Java调用WebService实例解析与知识点详解 #### 核心概念与原理 在现代软件开发中,服务端之间以及客户端和服务端之间的通信是至关重要的。Web Service作为一种标准的、跨平台的服务实现方式,允许不同语言编写...
8. **validate**: 如果`validate`属性设置为`true`,那么在调用`Action`之前,对应的`ActionForm`的`validate()`方法会被自动调用,用于验证用户输入的数据。 9. **unknown**: `unknown`属性用于处理未找到匹配的`...
一般来讲,定义自己的 Action 字符串应该以应用程序的包名为前缀(防止重复定义)。由于 Action 部分很大程度上决定了一个 Intent 的内容,所以自己定义的 Action 字符串应该能够一眼看出其意图。一个 intent 对象的...
默认映射器`DefaultActionMapper`根据请求URL的前缀和Action的name属性进行映射。 13. **struts.action.extension**: 指定Struts2处理的请求URL后缀,默认为"action"。若需处理多个后缀,可以用逗号分隔。 14. **...
该属性用于指定HTTP请求与指定Action之间的映射器,默认映射器为`org.apache.struts2.dispatcher.mapper.DefaultActionMapper`,它根据请求的前缀与Action的name属性完成映射。 #### struts.action.extension 此...
LookUpDispatchAction是Struts 1中的一个特殊类型的Action,它提供了更灵活的请求映射方式,允许我们根据请求参数的不同来调用不同的业务处理方法。下面将详细介绍LookUpDispatchAction的使用方法以及其在Struts应用...
`name`属性是Action的标识,`class`指定Action类的全限定名,`method`则指定了要调用的Action方法。Action可以被多次映射,只要每次映射的`name`不同。 10. **result标签**: `<result>`是Action的结果,它定义了...
10. `<s:action>`:用于调用其他action,并且可以访问其他action返回的结果。例如:`<s:action name="Welcome" executeResult="true"/>`,调用Welcome这个action,并且执行它的结果。 Struts2框架的标签库提供了...
- `<action>` 元素定义了一个具体的业务操作,`name` 是 Action 的名称,`class` 是对应 Action 类的路径,`method` 是要调用的方法。 - `<interceptor-ref>` 在 Action 中引用拦截器,覆盖默认拦截器栈。 10. **...
命名空间是Struts2配置的一部分,它定义了一组Action的集合,并为这些Action提供了一个唯一的路径前缀。在Struts2的配置文件(通常为struts.xml或struts-plugin.xml)中,你可以定义多个命名空间,每个命名空间下...
### Struts2 标签详解 #### 一、引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建健壮的 Web 应用程序。其中,Struts2 标签库是框架的重要组成部分之一,能够显著提高开发...
如果目标方法位于另一个项目中,可以使用项目前缀进行调用: ```php $data = R('Admin://User/detail', array('5')); ``` #### 五、R方法与控制器层的关联 除了上述基本的调用方式外,R方法还支持指定控制器层...
- **访问路径解释**:`namespace`可以理解为一组Action的访问前缀,它决定了Action的访问路径。 - **Namespace为空的情况**:如果某个Action没有显式地指定`namespace`,则该Action被视为属于全局`namespace`。 **...
-- JSP前缀--> <value>.jsp</value> <!-- JSP后缀--> ``` 四、URL Mapping 在Spring MVC中,URL Mapping是将用户请求映射到实际的Controller方法的过程。URL Mapping可以配置在spring-action.xml文件中,...
它负责初始化 Struts2 的环境,并调用相应的 Action 处理器。 3. **ActionMapper**:根据请求的 URL 确定哪个 Action 类负责处理这个请求。 4. **ActionInvocation**:通过 ActionProxy 创建 ActionInvocation 实例...
- **指定namespace**:例如:`namespace="/manage"`,所有属于该命名空间的Action的请求路径都会带上命名空间前缀。 **示例**: ```xml <action name="backLogin" class=...
### Activiti23张表详解 #### 一、概述 Activiti是一款开源的工作流引擎,基于Java语言开发,主要用于管理业务流程。它提供了一套完整的API来定义和执行流程,并支持BPMN 2.0标准。为了实现这些功能,Activiti在...
- **存储位置**:这个唯一的`RequestProcessor`实例会被存储在`ActionServlet`的一个属性中,其键名为`"org.apache.struts.action.REQUEST_PROCESSOR"`加上当前模块配置文件的前缀(如`config.getPrefix()`)。...