Struts2 接收参数的三种方式
来源:互联网 发布:高速摄像机知乎 编辑:程序博客网 时间:2024/06/04 19:46
Action接收参数的三种方式:
1:使用action的属性接收参数
2:使用DomainModel接收参数
3:使用ModelDriven接收参数
第一种方式接收参数:
第一种方式:
把表单的数据提交到LoginAction.action
struts.xml文件配置:
<action name="LoginAction" method="login" class="com.action.LoginAction"> <result>/LoginSuccess.jsp</result> </action>
action name一定是表单的提交action 调用该action的login方法
public class LoginAction extends ActionSupport { private String username; private String password; public String login(){ System.out.println(username); return SUCCESS; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
Login.jsp页面form表单 只有用户和密码 form的action=”LoginAction.action”
在控制台输出username值
但是该方法缺点: 如果一个页面有很多个参数就会创建很多个变量 显得很麻烦
第二种方式接收参数:
第二种方式就是使用面向对象的思想 把属性封装在User中 只是在action中调用User对象就好了
但是如果有两个User对象就需要知道表单的值到底是传给那个User对象的 所以需要在表单的name中添加User对象名.就好了
import com.opensymphony.xwork2.ActionSupport;import com.po.User;public class LoginAction extends ActionSupport { private User user; public String login(){ System.out.println(user.getUsername()); return SUCCESS; } public User getUser() { return user; } public void setUser(User user) { this.user = user; }}
public class User { private String username; private String password; //get和set方法
<form action="LoginAction.action" method="post" name="LoginForm"> 用户:<input type="text" name="user.username" value=""/> 密码:<input type="password" name="user.password" value=""/><br> <input type="submit" value="提交"/><br> </form>
======值得注意的是:
我之前使用的是get方式提交表单
在 System.out.println(user.getUsername());报空指针异常
但是使用post提交的时候就可以正常运行 暂时还不知道原因
使用第三种方式接收参数:
1:必须要实现接口:modelDriven
2:对象必须要实例化 不需要get和set方法
3:重写@Override
public User getModel() {
return user;}
其中T 为实例化的对象的引用
这样的好处是不需要在表单中声明是哪个对象实例获得的参数
public class LoginAction extends ActionSupport implements ModelDriven<User> { private User user =new User(); public String login(){ System.out.println(user.getUsername()); return SUCCESS; } @Override public User getModel() { return user; }}
<form action="LoginAction.action" method="post" name="LoginForm"> 用户:<input type="text" name="username" value=""/> 密码:<input type="password" name="password" value=""/><br> <input type="submit" value="提交"/><br> </form>
以上这些都是传的单个值 下面的传的两个集合 :String , User对象集合
但是数组不能传
public class LoginAction extends ActionSupport implements ModelDriven<User> { private User user =new User(); public String login(){ System.out.println(user.getBookList().get(0)); System.out.println(user.getBookList().get(1)); System.out.println(user.getUserlist().get(0).getUsername()); System.out.println(user.getUserlist().get(1).getUsername()); return SUCCESS; }
private String username; private String password; private List<String> bookList; private List<User> userlist;//get和set方法
<form action="LoginAction.action" method="post" name="LoginForm"> 用户:<input type="text" name="username" value="" /> 密码:<input type="password" name="password" value="" /><br> 书籍1:<input type="text" name="bookList[0]" value="" /><br> 书籍2:<input type="text" name="bookList[1]" value="" /><br> 人1:<input type="text" name="userlist[0].username" /><br> 人2:<input type="text" name="userlist[1].username" /><br> 年龄:<input type="text" name="age" value=""/> <input type="submit" value="提交" /><br> </form>
0 0
- Struts2接收参数的三种方式
- struts2接收参数的三种方式
- Struts2 接收参数的三种方式
- struts2在Action中接收参数的三种方式
- 【Struts2】Action接收参数的三种方式
- Struts2中Action接收参数的三种方式
- Struts2接收参数的几种方式
- Struts2接收参数的几种方式
- Struts2接收参数的几种方式
- Struts2接收参数的几种方式
- Struts2接收参数的几种方式
- Struts2 入门 三(Struts Action类的实现方式 接收参数的方式 )
- Struts2常用接收参数的4种方式
- struts2传递参数的三种方式
- Struts2传递参数的三种方式
- Struts2接受参数的三种方式
- struts2---获取参数的三种方式
- Struts2的三种参数传递方式
- 覆盖的面积 HDU
- 并行计算
- jvm参数设置 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
- APP开发实战170-ABI管理和SO文件的使用简介
- 支持ajax 跨域调用的WCF搭建
- Struts2 接收参数的三种方式
- springmvc利用validation框架实现数据校验
- POJ2027No Brainer
- SQL消费表中查找所有用户最后一条消费记录
- 467. Unique Substrings in Wraparound String
- Opencv获取最小外接矩形——minAreaRect
- underscore.js
- react中使用AntDesign库 --- babel-plugin-import 配置
- 二分图