Struts2_属性驱动

在jsp页面提交到action中的表单元素在action中是以对象的形式存在的,

action中的对象name必须与jsp页面中的表单元素name相同,struts框架自动为action的对象赋值.

一.普通驱动

注意:action中的对象name必须与jsp页面中的表单元素name相同,struts框架自动为action的对象赋值.

案例:

struts.xml文件:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <!DOCTYPE struts PUBLIC
 4     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 5     "http://struts.apache.org/dtds/struts-2.3.dtd">
 6 
 7 <struts>
 8     <package name="Hello" extends="default-struts" namespace="">
 9         <action name="Hello" class="com.ahd.action.HelloAction">
10             <result>/success.jsp</result>
11         </action>
12     </package>
13 </struts>

jsp页面:

1 <body>
2     <form action="hello.action">
3         用户名:<input type="text" name="username"/><br/>
4         密    码:<input type="password" name="password"/><br/>
5         <input type="submit" value="submit"/>
6         <input type="reset" name="reset"/><br/>
7     </form>
8     
9   </body>

action页面:

 1 package com.ahd.action;
 2 
 3 import com.opensymphony.xwork2.ActionSupport;
 4 
 5 public class HelloAction extends ActionSupport{
 6     private String username;
 7     private String password;
 8     
 9     @Override
10     public String execute() throws Exception {
11         // TODO Auto-generated method stub
12         return super.execute();
13     }
14 
15     public String getUsername() {
16         return username;
17     }
18 
19     public void setUsername(String username) {
20         this.username = username;
21     }
22 
23     public String getPassword() {
24         return password;
25     }
26 
27     public void setPassword(String password) {
28         this.password = password;
29     }
30     
31 }

二.属性驱动

普通驱动如果是大项目表单提供过多元素action会比较乱,属性驱动就是将表单提供的元素封装到一个对象中,这个对象作为action中的属性,

在前端页面表单中需要提交的元素name统一写成 对象.name

案例:

实体类User

 1 package com.ahd.entity;
 2 
 3 public class User {
 4     private String username;
 5     private String password;
 6     public String getUsername() {
 7         return username;
 8     }
 9     public void setUsername(String username) {
10         this.username = username;
11     }
12     public String getPassword() {
13         return password;
14     }
15     public void setPassword(String password) {
16         this.password = password;
17     }
18 }

HelloAction:

 1 package com.ahd.action;
 2 
 3 import com.ahd.entity.User;
 4 import com.opensymphony.xwork2.ActionSupport;
 5 
 6 public class HelloAction extends ActionSupport{
 7     private User user;
 8     
 9     @Override
10     public String execute() throws Exception {
11         // TODO Auto-generated method stub
12         System.out.println(user.getUsername()+user.getPassword());
13         return super.execute();
14     }
15 
16     public User getUser() {
17         return user;
18     }
19 
20     public void setUser(User user) {
21         this.user = user;
22     }
23     
24 }

index.jsp:

1   <body>
2     <form action="hello.action">
3         用户名:<input type="text" name="user.username"/><br/>
4         密    码:<input type="password" name="user.password"/><br/>
5         <input type="submit" value="submit"/>
6         <input type="reset" name="reset"/><br/>
7     </form>
8     
9   </body>

strust.xml:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <!DOCTYPE struts PUBLIC
 4     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 5     "http://struts.apache.org/dtds/struts-2.3.dtd">
 6 
 7 <struts>
 8     <package name="Hello" extends="default-struts" namespace="">
 9         <action name="Hello" class="com.ahd.action.HelloAction">
10             <result>/success.jsp</result>
11         </action>
12     </package>
13 </struts>

猜你喜欢

转载自www.cnblogs.com/aihuadung/p/9912995.html