struts属性驱动与模型驱动
2013-02-24 23:24
429 查看
Struts2的属性驱动是使用Action的属性来封装来回请求参数和处理结果,即在jsp页面的每一个form中的name都对应在action中有一个属性与之对应。
Struts2的模型驱动的意思是使用单独的JavaBean来封装请求参数和处理结果。
一、属性驱动(1)
User JavaBean代码如下:
action代码如下:
在模型驱动中,action类需要继承ModelDriven接口,并必须要实现getModel()方法。
action代码如下:
Struts2的模型驱动的意思是使用单独的JavaBean来封装请求参数和处理结果。
一、属性驱动(1)
User JavaBean代码如下:
package com.hsinghsu.testSSH.model; public class User { private Long id; private String name; private String pwd; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } }action代码如下:
package com.hsinghsu.testSSH.action; import org.springframework.beans.factory.annotation.Autowired; import com.hsinghsu.testSSH.service.UserService; public class LoginAction extends BaseAction { /** * */ private static final long serialVersionUID = -6144396976094110475L; @Autowired private UserService userService; private String username; private String password; public String execute() throws Exception { System.out.println("username:"+username+" password:"+password); if(userService.login(username,password)) { return "success"; } return "error"; } 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; } }struts.xml配置如下:
<action name="mylogin" class="com.hsinghsu.testSSH.action.LoginAction"> <result name="success">/jsp/welcome.jsp</result> <result name="error">/jsp/login.jsp</result> </action>login.jsp代码如下:
<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Insert title here</title> </head> <body> <form action="mylogin.action" method="post"> Username:<input type="text" name="username"/><br/> Password:<input type="password" name="password"/><br/> <input type="submit" value="Submit"/> </form> </body> </html>welcome.jsp代码如下:
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>IWelcome</title> </head> <body> Welcome <s:property value="username"/> </body> </html>二、属性驱动(2):
action代码如下:
package com.hsinghsu.testSSH.action; import org.springframework.beans.factory.annotation.Autowired; import com.hsinghsu.testSSH.model.User; import com.hsinghsu.testSSH.service.UserService; public class NoUserDrivenLoginAction extends BaseAction { /** * */ private static final long serialVersionUID = -3116586181830026380L; private User user; @Autowired private UserService userService; public String execute() throws Exception { System.out.println("username:"+user.getName()+" password:"+user.getPwd()); if(userService.login(user.getName(),user.getPwd())) { return "success"; } return "error"; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }struts.xml配置如下:
<action name="noDrivenLogin" class="com.hsinghsu.testSSH.action.NoUserDrivenLoginAction"> <result name="success">/jsp/noDrivenWelcome.jsp</result> <result name="error">/jsp/noDrivenLogin.jsp</result> </action>noDrivenLogin.jsp代码如下:
<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Insert title here</title> </head> <body> <form action="noDrivenLogin.action" method="post"> Username:<input type="text" name="user.name"/><br/> Password:<input type="password" name="user.pwd"/><br/> <input type="submit" value="Submit"/> </form> </body> </html>noDrivenWelcome.jsp代码如下:
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>IWelcome</title> </head> <body> Welcome <s:property value="user.name"/> </body> </html>三、模型驱动:
在模型驱动中,action类需要继承ModelDriven接口,并必须要实现getModel()方法。
action代码如下:
package com.hsinghsu.testSSH.action; import org.springframework.beans.factory.annotation.Autowired; import com.hsinghsu.testSSH.model.User; import com.hsinghsu.testSSH.service.UserService; import com.opensymphony.xwork2.ModelDriven; public class UserDrivenLoginAction extends BaseAction implements ModelDriven<User>{ /** * */ private static final long serialVersionUID = -3116586181830026380L; private User user = new User(); @Autowired private UserService userService; public String execute() throws Exception { System.out.println("username:"+user.getName()+" password:"+user.getPwd()); if(userService.login(user.getName(),user.getPwd())) { return "success"; } return "error"; } @Override public User getModel() { return user; } }struts.xml配置如下:
<action name="drivenLogin" class="com.hsinghsu.testSSH.action.UserDrivenLoginAction"> <result name="success">/jsp/drivenWelcome.jsp</result> <result name="error">/jsp/drivenLogin.jsp</result> </action>drivenLogin.jsp代码如下:
<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Insert title here</title> </head> <body> <form action="drivenLogin.action" method="post"> Username:<input type="text" name="name"/><br/> Password:<input type="password" name="pwd"/><br/> <input type="submit" value="Submit"/> </form> </body> </html>drivenWelcome.jsp代码如下:
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>IWelcome</title> </head> <body> Welcome <s:property value="name"/> </body> </html>
相关文章推荐
- Struts的属性驱动和模型驱动
- struts学习(四)—属性封装、模型驱动封装和表达式封装
- struts模型驱动和属性驱动
- Struts属性驱动与模型驱动的区别
- JAVA -- Struts模型驱动和属性驱动
- struts模型驱动和属性驱动冲突的问题
- Action接收参数的3种方式(属性,域模型,模型驱动,struts2.1.8)
- struts同时使用属性注入和模型驱动注入数据注入失败原因分析及解决方法
- Struts-setter、getter方法自动 ActionSupport类-属性驱动+模型驱动
- Struts属性和模型驱动
- Action接收参数的3种方式(属性,域模型,模型驱动,struts2.1.8)
- struts2 接受参数的两种方式(属性驱动和模型驱动)
- Struts中模型驱动与属性驱动共同使用可能会遇到的问题
- ###struts模型驱动(必须new)能够封装【对象类型属性的属性】.页面传参错误导致的问题:HTTP Status 500 - could not execute statement;
- strut2接收参数的三种方式(属性驱动\对象驱动\模型驱动)
- Struts2 - 属性驱动与模型驱动
- struts 的模型驱动,接受表单值
- Struts2的属性驱动与模型驱动的区别
- Struts2(四)属性驱动和模型驱动