Struts2接收请求参数1
2017-02-15 15:46
495 查看
Struts2 是MVC中的控制器(处理请求),所以在请求过程中,数据由Strutes解决;
接受请求参数的三种类型:属性驱动、模型驱动、域驱动。(常用的是后两种)
1)、属性驱动:
Html代码块:
Java代码块:
总结:直接在action的POJO类中声明与表元素一致的属性,并声称匹配的get/set方法,Strutes会自动提交到action中并直接给显影的属性赋值;
2)、模型驱动:
Html代码块:
<form action="loginAction" method="post">
用户名:<input type="text" name="username"><br>
密 码:<input type="password" name="password"><br>
<input type="submit" value="Submit">
</form>Action代码块:
public class LoginAction implements ModelDriven<User>{
private User user;
public String execute(){
System.out.println(this.user.getUsername()+this.user.getPassword());
return "success";
}
@Override
public User getModel() {
if(this.user == null){
user = new User();
}
return user;
}
总结:继承ModelDriven接口,实现对应的getModel()方法;
3)、域驱动:
Html代码块:
总结:通常情况下,表单元素往往对应一个实体,实体又往往单独放在实体层中,那么此时就需要在action中放入实体对象作为请求参数,域驱动的方式就是把实体中的对象作为action的属性;
接受请求参数的三种类型:属性驱动、模型驱动、域驱动。(常用的是后两种)
1)、属性驱动:
Html代码块:
<form action="loginAction" method="post"> 用户名:<input type="text" name="username"><br> 密 码:<input type="password" name="password"><br> <input type="submit" value="Submit"> </form>
Java代码块:
public class LoginAction { private String username; private String password; 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; } public String execute(){ System.out.println(username+password); return "success"; } }
总结:直接在action的POJO类中声明与表元素一致的属性,并声称匹配的get/set方法,Strutes会自动提交到action中并直接给显影的属性赋值;
2)、模型驱动:
Html代码块:
<form action="loginAction" method="post">
用户名:<input type="text" name="username"><br>
密 码:<input type="password" name="password"><br>
<input type="submit" value="Submit">
</form>Action代码块:
public class LoginAction implements ModelDriven<User>{
private User user;
public String execute(){
System.out.println(this.user.getUsername()+this.user.getPassword());
return "success";
}
@Override
public User getModel() {
if(this.user == null){
user = new User();
}
return user;
}
总结:继承ModelDriven接口,实现对应的getModel()方法;
3)、域驱动:
Html代码块:
<form action="loginAction" method="post"> 用户名:<input type="text" name="user.username"><br> 密 码:<input type="password" name="user.password"><br> <input type="submit" value="Submit"> </form>Java代码块:
public class LoginAction { private User user; public void setUser(User user) { this.user = user; } public User getUser() { return user; } public String execute(){ System.out.println(user); return "success"; } }
public class User { //一个JAVABEAN private String username; private String password; 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; } public User(String username, String password) { super(); this.username = username; this.password = password; } @Override public String toString() { return "User [username=" + username + ", password=" + password + "]"; } public User() { super(); } }
总结:通常情况下,表单元素往往对应一个实体,实体又往往单独放在实体层中,那么此时就需要在action中放入实体对象作为请求参数,域驱动的方式就是把实体中的对象作为action的属性;
public class User { //一个JAVABEAN private String username; private String password; 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; } public User(String username, String password) { super(); this.username = username; this.password = password; } @Override public String toString() { return "User [username=" + username + ", password=" + password + "]"; } public User() { super(); } }
相关文章推荐
- Java BigDecimal和double
- Spring 源码初探
- CCF之I’m stuck!(java)
- 使用spring的PropertyPlaceholderConfigurer加密properties文件中的属性
- Java单例模式
- java装箱与拆箱
- 【TerryHe 博客园】Spring Boot 应用示例
- postman+json+springmvc测试批量添加
- jdk、jre
- 利用NuGet安装IKVM.OpenJDK.Core
- MyEclipse2016下载
- 67. @Transactional的类注入失败【从零开始学Spring Boot】
- Java中如何结束线程
- 65.什么是IOC?【从零开始学Spring Boot】
- java 值传递简单透彻理解
- Hessian(1)Spring整合Hessian
- java线程同步volatile与synchronized(三)
- CCF之最大的矩阵(java)
- 64.JPA命名策略【从零开始学Spring Boot】
- 面向对象概述及三大特性