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前缀 不提交表单 只做页面重定向
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前缀 不提交表单 只做页面重定向