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前缀 不提交表单 只做页面重定向
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值