struts2--使用域模型完成注册的简单实例

struts2--使用域模型完成注册的简单实例

1.新建一个Web Project,命名为struts-register
2.引入struts的支持
3.新建register.jsp页面
<span style="font-size:18px;"><html>
  <body>
   <form action="register.action">
   	username:<input name="user.username"><br>
   	sex:<input name="user.sex"><br>
   	age:<input name="user.age"><br>
   	birth:<input name="user.birth"><br>
   	bool:<input name="user.bool"><br>
   	hobby:<input name="user.hobby" type="checkbox" value="music">music
   	<input type="checkbox" name="user.hobby" value="sports">sports
   	<input type="checkbox" name="user.hobby" value="games">games<br>
   	pet name:<input name="user.pet.petName"><br>
   	<input type="submit" value="register">
   </form>
  </body>
</html></span>
<span style="font-size:18px;">4.配置struts.xml文件</span>
<span style="font-size:18px;"></span><pre name="code" class="html"><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="register" namespace="/" extends="struts-default">
		<action name="register" class="com.etc.action.RegisterAction">
			<result>/success.jsp</result>
		</action>
	</package>
</struts>
5.新建com.etc.vo包,包下新建User.java
 
 
<span style="font-size:18px;"></span><pre name="code" class="java">package com.etc.vo;
import java.util.Arrays;
import java.util.Date;
public class User {
	private String username;
	private String sex;
	private int age;
	private Date birth;
	private boolean bool;
	private String[] hobby;
	private Pet pet;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public Date getBirth() {
		return birth;
	}
	public void setBirth(Date birth) {
		this.birth = birth;
	}
	public boolean isBool() {
		return bool;
	}
	public void setBool(boolean bool) {
		this.bool = bool;
	}
	public String[] getHobby() {
		return hobby;
	}
	public void setHobby(String[] hobby) {
		this.hobby = hobby;
	}
	public Pet getPet() {
		return pet;
	}
	public void setPet(Pet pet) {
		this.pet = pet;
	}
	@Override
	public String toString() {
		return "User [username=" + username + ", sex=" + sex + ", age=" + age
				+ ", birth=" + birth + ", bool=" + bool + ", hobby="
				+ Arrays.toString(hobby) + ", pet=" + pet + "]";
	}
}
6.在com.etc.vo包下新建Pet.java
 
 
<span style="font-size:18px;"></span><pre name="code" class="java">package com.etc.vo;
public class Pet {
	private String petName;
	public String getPetName() {
		return petName;
	}
	public void setPetName(String petName) {
		this.petName = petName;
	}
	@Override
	public String toString() {
		return "Pet [petName=" + petName + "]";
	}
}
7.新建com.etc.action包,在包下新建RegisterAction.java
 
 
<span style="font-size:18px;"></span><pre name="code" class="java">package com.etc.action;
import com.etc.vo.User;
import com.opensymphony.xwork2.ActionSupport;
public class RegisterAction extends ActionSupport{
	private User user;
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public String execute() throws Exception {
		System.out.println(user);
		return "success";
	}
}
8.新建success.jsp页面
 
 
<span style="font-size:18px;"></span><pre name="code" class="html"><html>
  <body>
   register success!
  </body>
</html>
9.右键运行,在注册页面输入相应信息
 
 
<span style="font-size:18px;">  运行结果:跳转到success.jsp页面,输出register success!</span>
<span style="font-size:18px;">     <span style="white-space:pre">	</span>在控制台输出:User [username=zoey, sex=female, age=10, birth=Sat Oct 02 00:00:00 GMT+08:00 2010, bool=true, hobby=[music, sports], pet=Pet [petName=petty]]

</span>
 
  
 

注意点:
1)struts中int类型的数据必须要填,虽然不填时不影响运行,但是会报错:ognl.MethodFailedException
2)struts中接收的日期格式只能是yyyy-MM-dd,否则要自己进行转换。
3)上面的例子中,hobby是一个checkbox类型,里面的name属性必须保持一致,而且一定要有value属性,否则得到的结果 就是on,而不是我们实际选中的值
4)其中,在User类中又有一个Pet的对象,声明:private Pet pet;一定要在Pet.java中生成toString()方法,才能得到pet 的name值,否则得到的一直都是一个地址。
还有在register.jsp页面中,pet name的属性name的值写的是user.pet.name;
5)hobby除了可以是String[]类型,还有是List<String>类型
只要在User.java中:private String[] hobby ----->private List<String> hobby;
重新生成hobby的getter/setter方法,toString方法就可以了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值