您的位置:首页 > 编程语言 > Java开发

Struts之参数传递

2015-11-24 12:49 429 查看
这里涉及到三种传递:

属性,实体,list传值的流程:

加载web.xml---输入页面(jsp)--[b]struts.xml(分辨出交给哪个action)[/b]

[b]---action[/b](处理后)--返回struts.xml--最后交给jsp页面

第一步配置web.xml

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
第二步配置struts.xml

<!-- 动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- 开发模式 -->
<constant name="struts.devMode" value="true" />

<package name="default" namespace="/" extends="struts-default">
<!-- 当页面传递的类型不匹配出错时,设置全局 -->
<global-results>
<result name="input">/error.jsp</result>
</global-results>
<action name="user" class="cn.test.LoginAction">//选择对应的action
<result name="success">/success.jsp</result>//用于返回界面
</action>
</package>

[b]第三步创建一个UserInfo.java
[/b]

这是一个实体类 

第四步创建一个Loginaction.java

public class LoginAction extends ActionSupport {
// 属性接收参数
private String name;
private String pass;
// 实体类接收参数
private UserInfo user;
// List接收参数
private List<UserInfo> list;
// 默认传递给execute,可以改变的
@Override
public String execute() throws Exception {
System.out.print(name + "---" + pass);
return "success";
}
// 下面的都是用于传递值的方法
public String add1() throws Exception {
// 这个user就是上面的那个UserInfo user
System.out.print(user);
return "success";
}
public String add2() throws Exception {
// 此处的list封装了login页面的数据(UserInfo)
for (UserInfo user : list) {
System.out.print(user);
}
return "success";
}下面还有 <span style="font-family: Arial, Helvetica, sans-serif;">name </span><span style="font-family: Arial, Helvetica, sans-serif;">pass </span><span style="font-family: Arial, Helvetica, sans-serif;">user </span><span style="font-family: Arial, Helvetica, sans-serif;">list</span><span style="font-family: Arial, Helvetica, sans-serif;">的</span><span style="font-family: Arial, Helvetica, sans-serif;">get/set方法,就不列出来了</span>
第五步创建可以传递值的页面login.jsp

<h1>属性接收参数</h1><hr/>
<form action="user" method="post">
账号:<input type="text" name="name"><br>
密码:<input type="password" name="pass"><br>
<input type="submit" value="登录">
</form>
<h1>实体类接收参数</h1><hr/>
<form action="user!add1" method="post">
账号:<input type="text" name="user.name"><br>
密码:<input type="password" name="user.pass"><br>
<input type="submit" value="登录">
</form>
<h1>List接收参数</h1><hr/>
<form action="user!add2" method="post">

账号:<input type="text" name="list[0].name">
密码:<input type="password" name="list[0].pass"><br>

账号:<input type="text" name="list[1].name">
密码:<input type="password" name="list[1].pass"><br>

<input type="submit" value="登录">
</form>
第六步交给获得处理结果的jsp页面



<%@ taglib prefix="s" uri="/struts-tags" %>//这个是struts标签,用于下面的iterator




对应execute方法:
<span style="white-space:pre">	</span><h1>属性接收</h1><hr />
账号:${name}<br>
密码:${pass}<br>
<strong><span style="font-size:14px;"></span></strong><pre name="code" class="html">对应add1方法:
<h1>实体类接收</h1><hr />账号:${user.name}<br> 密码:${user.pass}<br> 


<strong><span style="font-size:14px;"></span></strong><pre name="code" class="html">对应add2方法:
<h1>List接收</h1><hr /><s:iterator value="list" status="s">//迭代器索引:${s.index}--序号:${s.count}-- 姓名:${name } 密码:${pass }<br /></s:iterator>

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts 参数传递