Struts2学习笔记(13)-----JavaBean属性的领域对象

      今天是传智播客创始人张孝祥的追悼会,饮水思源,在我写今天的学习心得之前我也要说说我的悼念之情。


      我是看着张孝祥的免费视频从大二一点一点学习Java的,可以说没有张孝祥,就没有今天的我(尽管我现在的技术还是不怎么滴…)。虽然我没有见过张孝祥,然而传智播客的那些学员们都说他是一个好人,而我也从教学视频中看出张老师是一个幽默、诙谐的人。中国就是这样贪官污吏长命百岁而确确实实为人民做实事的人总是那么命短。每当我看到他的人生格言 “为千万人少走弯路而著书、为中华软件之崛起而讲课”时,我就莫名的感动,这是一种怎样的情操,在这个物欲横流的年代,还有几个人心里惦记着中国的事业?都醉生梦死,比吃比穿比享受…好不容易有那么一个人却不能长命,这世道让人真的很无语!张孝祥的精神也时时刻刻的鼓励着我,我也告诉自己做个像张孝祥那样的人,为自己、为中国的IT事业贡献自己的一份力量。确确实实的一个好人,然而38岁就天人相隔,不能不说是那些深处困境却想要从事IT行业学子的一大损失。昔人已去,愿张老师一路走好!


       好了,暂时收拾悲伤的心情接着开始今天的学习。


       Struts2中传输对象到领域对象是通过参数拦截器自动进行的。你只需要创建一个领域对象作为JavaBean的属性并且设置getter和setter方法就可以了。框架将会自动初始化领域对象并且传输表单数据。


       下面来举个例子。


        建一个Action类UserAction.java,代码如下所示:


package com.iman.action;
 
import com.iman.model.User;
import com.opensymphony.xwork2.ActionSupport;
 
public class UserAction extends ActionSupport {
    private User user;
   
    @Override
    public String execute() throws Exception {
       // TODO Auto-generatedmethod stub
       return SUCCESS;
    }
    public User getUser() {
       return user;
    }
 
    public void setUser(User user) {
       this.user = user;
    }
   
}


     假如user有name,age等属性而我们去访问这些对象时,那我们则需要先获得user对象然后访问它的属性,如下所示:

   

getUser.getName();
getUser.getAge();


       建一个JavaBean对象,如下所示:


package com.iman.model;
 
public class User {
    private String name;
    private String sex;
    private int age;
    private String[] hobby;
    private String country;
   
    public User() {
       super();
       // TODO Auto-generatedconstructor stub
    }
   
    public String getName() {
       return name;
    }
    public void setName(String name) {
       this.name = name;
    }
    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 String[] getHobby() {
       return hobby;
    }
    public void setHobby(String[] hobby) {
       this.hobby = hobby;
    }
    public String getCountry() {
       return country;
    }
    public void setCountry(String country) {
       this.country = country;
    }
   
   
   
}


 

       在jsp页面我们不能直接访问user的属性,但是这些属性是属于User对象的,所以我们可以这样去取值:

   

   

age=”user.age”
name=”user.name”


      好了,给出具体的注册表单register.jsp页面:


<%@ page language="java"contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s"uri="/struts-tags" %>   
<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">
<title>注册表单</title>
</head>
<body>
    <s:form action="userAction">
       <s:textfield name="user.name"label="姓名"></s:textfield>
       <s:textfield name="user.age"label="年龄"></s:textfield>
       <s:radio name="user.sex"label="性别" list="{'男','女'}"></s:radio>
       <s:checkboxlist name="user.hobby"label="爱好" list="{'唱歌','跳舞','上网','睡觉'}"></s:checkboxlist>
        <s:select name="user.country" label="国家" list="{'中国','美国','英国'}"></s:select>
       <s:submit value="提交"></s:submit>
    </s:form>
</body>
</html>



       注册信息展示页面mess.jsp如下所示:


<%@ page language="java"contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s"uri="/struts-tags" %>   
<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">
<title>用户信息</title>
</head>
<body>
    注册信息
    <hr>
    姓名:<s:property value="user.name"/><br>
    年龄:<s:property value="user.age"/><br>
    性别:<s:property value="user.sex"/><br>
    爱好:<s:property value="user.hobby"/><br>
    国家:<s:property value="user.country"/>
   
   
</body>
</html>



        好了,打开服务器并部署项目,运行register.jsp页面,如下所示:


Struts2学习笔记(13)-----JavaBean属性的领域对象_第1张图片


        点击“提交”按钮,页面如下所示:


Struts2学习笔记(13)-----JavaBean属性的领域对象_第2张图片


      可见,就这样信息给传过来了,很简单,下一节将告诉你更简单的方法!


      附上struts.xml配置文件代码:


<package name="domain" extends="struts-default"namespace="/domain">
        <action name="userAction" class="com.iman.action.UserAction">
            <result name="success">/domain/mess.jsp</result>
        </action>
    </package>


     这是本人学习的结果,欢迎转载,欢迎交流,但转载务必给出本文章的链接地址:http://blog.csdn.net/youqishini/article/details/7176128,谢谢~ 




你可能感兴趣的:(exception,struts,String,user,Class,action)