Struts2_属性驱动

时间:2023-03-10 00:35:20
Struts2_属性驱动

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

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

一.普通驱动

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

案例:

struts.xml文件:

 <?xml version="1.0" encoding="UTF-8"?>

 <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<package name="Hello" extends="default-struts" namespace="">
<action name="Hello" class="com.ahd.action.HelloAction">
<result>/success.jsp</result>
</action>
</package>
</struts>

jsp页面:

 <body>
<form action="hello.action">
用户名:<input type="text" name="username"/><br/>
密 码:<input type="password" name="password"/><br/>
<input type="submit" value="submit"/>
<input type="reset" name="reset"/><br/>
</form> </body>

action页面:

 package com.ahd.action;

 import com.opensymphony.xwork2.ActionSupport;

 public class HelloAction extends ActionSupport{
private String username;
private String password; @Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return super.execute();
} 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;
} }

二.属性驱动

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

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

案例:

实体类User

 package com.ahd.entity;

 public class User {
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;
}
}

HelloAction:

 package com.ahd.action;

 import com.ahd.entity.User;
import com.opensymphony.xwork2.ActionSupport; public class HelloAction extends ActionSupport{
private User user; @Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println(user.getUsername()+user.getPassword());
return super.execute();
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} }

index.jsp:

   <body>
<form action="hello.action">
用户名:<input type="text" name="user.username"/><br/>
密 码:<input type="password" name="user.password"/><br/>
<input type="submit" value="submit"/>
<input type="reset" name="reset"/><br/>
</form> </body>

strust.xml:

 <?xml version="1.0" encoding="UTF-8"?>

 <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<package name="Hello" extends="default-struts" namespace="">
<action name="Hello" class="com.ahd.action.HelloAction">
<result>/success.jsp</result>
</action>
</package>
</struts>