在struts.xml配置文件里对action实现类中的多个方法进行配置方式有哪些?

在struts.xml配置文件里对action实现类中的多个方法进行配置方式有哪些?请简要回答... 在struts.xml配置文件里对action实现类中的多个方法进行配置方式有哪些?请简要回答 展开
 我来答
l7722526
2017-05-05 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3561万
展开全部
action的配置中,有一个为"redirectAction”(重定向到一个Action)和chain(就是所谓的action请求链)的action类型
顺便说一下struts2的action type:
chain 用来处理Action链
dispatcher 用来转向页面,通常处理JSP
redirect 重定向到一个URL
redirectAction(或redirect-action) 重定向到一个Action
匿名用户
2017-05-05
展开全部
1.采用DMI动态调用方法。

  该方法的主要思想是在一个 Action 类中实现多个方法,然后每个 action 请求中表明要调用该类中的哪个方法。使用 actionname!method 方式调用。

  (1)LoginAction 类代码如下:

复制代码
1 package com.main.action;
2
3 import com.opensymphony.xwork2.ActionSupport;
4
5 public class LoginAction extends ActionSupport {
6 private String username;
7 private String psd;
8
9 public String login(){
10 if ("lihui".equals(username) && "xhh".equals(psd)) {
11 return SUCCESS;
12 } else {
13 return ERROR;
14 }
15 }
16
17 public String regist(){
18 return "regist";
19 }
20
21 public void setUsername(String username){
22 this.username = username;
23 }
24
25 public String getUsername(){
26 return this.username;
27 }
28
29 public void setPsd(String psd){
30 this.psd = psd;
31 }
32
33 public String getPsd(){
34 return this.psd;
35 }
36 }
复制代码
  (2)struts.xml 配置如下:  

复制代码
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4 "http://struts.apache.org/dtds/struts-2.0.dtd">
5
6 <struts>
7 <package name="default" namespace="/" extends="struts-default">
8 <action name="login" class="com.main.action.LoginAction">
9 <result name="success">/success.jsp</result>
10 <result name="error">/error.jsp</result>
11 <result name="regist">/regist.jsp</result>
12 </action>
13 </package>
14 </struts>
复制代码
  (3)在jsp中的action请求代码如下:

复制代码
1 <body>
2 <script type="text/javascript">
3 function regist(){
4 var form = document.forms[0];
5 form.action = "login!regist";
6 form.submit();
7 }
8 </script>
9 <form action="login!login">
10 姓名:<input type="text" name="username" /><br/>
11 密码:<input type="password" name="psd" /><br/>
12 <input type="submit" value="登录" />
13 <input type="submit" value="注册" onclick="regist();">
14 </form>
15 </body>
复制代码
2.直接指定 Action 元素的 method 属性

  使用这个方法就不必用 ! 将action和method连接后调用了,struts.xml 配置如下:

复制代码
1 <struts>
2 <package name="default" namespace="/" extends="struts-default">
3 <action name="login" class="com.main.action.LoginAction" method="login">
4 <result name="success">/success.jsp</result>
5 <result name="error">/error.jsp</result>
6 </action>
7 <action name="regist" class="com.main.action.LoginAction" method="regist">
8 <result name="regist">/regist.jsp</result>
9 </action>
10 </package>
11 </struts>
复制代码
3.使用通配符处理

  <action>的属性name class method 都支持通配符。struts.xml 配置如下:

复制代码
1 <struts>
2 <package name="default" namespace="/" extends="struts-default">
3 <action name="login_*" class="com.main.action.LoginAction" method="{1}">
4 <result name="success">/success.jsp</result>
5 <result name="error">/error.jsp</result>
6 <result name="regist">/regist.jsp</result>
7 </action>
8 </package>
9 </struts>
复制代码
  关键就在于第三行代码, login_* 使用了通配符,所以接收所有类似的action请求,至于调用该类中的哪个方法,就看method="{1}",表示使用name属性第一个*的值。例如,在本例中,form的action属性值设置为 login_regist,则调用com.main.action.LoginAction类中的regist()方法。

此外,Struts支持默认 Action 请求。当系统找不到指定的Action时,则交给默认的Action去处理。在struts.xml中的配置为:

<package ...>

  <default-action-ref name="login"></default-action-ref>

</package>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式