您的位置:首页 > 编程语言 > Java开发

struts2 CRUD

2014-04-23 17:52 316 查看
Struts2CRUD  

 


UserBean

//要添加set,get
public class UserBean {
        private Long id;
        private String name;    
        private String password;        
        private int age;        
        private Date birthday;  
        private Long sex;      
        private Set<Long> likes;        
        private String des;//描述
}

public class LikeBean {
        private Long id;
        private String name;
}


FormAction

   public class FormAction{
        //属性要生成get,set
        //标记(添加,修改)
        private String tip;    
        private UserBean userBean;      
        private List<LikeBean> likeList;        
        private List<UserBean> userList;
        //到列表页面
        public String list(){
                userList = new ArrayList<UserBean>();
                userList.add(new UserBean("abc",19,new Date()));
                userList.add(new UserBean("def",70,new Date()));
                userList.add(new UserBean("ghi",40,new Date()));
                return "list";
        }
        //到添加页面
        public String toAdd(){
                likeList = new ArrayList<LikeBean>();
                likeList.add(new LikeBean(new Long(1),"上网"));
                likeList.add(new LikeBean(new Long(2),"读书"));
                likeList.add(new LikeBean(new Long(3),"游戏"));
               
                tip = "add";
                return "info";
        }
        //添加方法,Struts2会自动把对应的值赋值给userBean
        public String add(){
                System.out.println(userBean);
                return "toList";
        }
        //到更新页面,取出值,设置标记
        public String toUpdate(){
                likeList = new ArrayList<LikeBean>();
                likeList.add(new LikeBean(new Long(1),"上网"));
                likeList.add(new LikeBean(new Long(2),"读书"));
                likeList.add(new LikeBean(new Long(3),"游戏"));
               
                tip = "update";
                System.out.println("update name:"+userBean.getName());
                userBean = new UserBean("update",100,new Date());
                userBean.setId(new Long(101));
                userBean.setSex(new Long(2));
                userBean.setDes("Struts2用户");
                Set<Long> likes = new HashSet<Long>();
                likes.add(new Long(2));
                likes.add(new Long(3));
                userBean.setLikes(likes);
                return "info";
        }
        //更新方法
        public String update(){
                System.out.println(userBean);
                return "toList";
        }
        //删除方法
        public String delete(){
                System.out.println("del name:"+userBean.getName());
                return "toList";
        }
   }


struts.xml配置

<struts>

    <package name="form" namespace="/form" extends="struts-default">
        <!-- 使用通配符调用多个方法,method为*对应的字符串 -->
        <action name="userAction_*" class="com.struts2.form.FormAction" method="{1}">
            <!-- 方法返回的字符串对应name,再转发到页面 -->
            <result name="list">/form/list.jsp</result>
            <result name="info">/form/info.jsp</result>
            <!-- 重定向Action,可以有Action名字和空间,参数 -->
            <result name="toList" type="redirectAction">
                <!-- 空间参数,不写代表和当前Action同一个空间
                <param name="namespace">form</param>
                 -->
                <!-- 重定向Action的名称 -->
                <param name="actionName">userAction_list</param>
                <!-- url带的参数,${userBean.name}是动态参数,值为Action的属性userBean中name的值 -->
                <param name="userName">${userBean.name}</param>
                <param name="userAge">${userBean.age}</param>
            </result>
           
        </action>
    </package>
</struts>


jsp页面

1.list(列表页面)
<!-- 添加标签 -->
<%@ taglib prefix="s" uri="/struts-tags" %>
        <div><a href="${pageContext.request.contextPath}/form/userAction_toAdd.action">添加</a></div>
        <div>
                <!-- 判断用户是否为空 -->
                <s:if test="(userList!=null)&&(!userList.isEmpty())">
                        <div>用户列表</div>
                        <!-- 遍历用户 -->
                        <s:iterator value="#request.userList" id="u" status="st">
                                <s:property value="#st.index+1"/> 
                                <s:property value="#u.name"/> 
                                <s:property value="#u.age"/> 
                                <!-- 格式化日期 -->
                                <s:date name="#u.birthday" format="yyyy-MM-dd HH:mm:ss" />    
                                <a href="${pageContext.request.contextPath}/form/userAction_toUpdate.action?userBean.name=${u.name}">修改</a>    
                                <a href="${pageContext.request.contextPath}/form/userAction_delete.action?userBean.name=${u.name}">删除</a>
                                <br/>
                        </s:iterator>
                </s:if>
                <s:else>
                        <div>无用户</div>
                </s:else>
        </div>

2.info.jsp(添加和修改页面)
<!-- 添加标签 -->
<%@ taglib prefix="s" uri="/struts-tags" %>
        <!-- 显示标记(添加/修改) -->
        <s:property value="tip"/>
        <!-- action="userAction_%{tip}"tip为Action中的标记变量 submit不加method -->
        <s:form action="userAction" namespace="/form" method="POST">
                <!-- userBean.id为Action中属性userBean中id的值 -->
                <s:hidden name="userBean.id"></s:hidden>
                <s:textfield name="userBean.name" label="用户名" ></s:textfield>
                <s:textfield name="userBean.age" label="年龄" ></s:textfield>
                <s:textfield name="userBean.birthday" label="生日" >
                        <!-- 格式化日期 -->
                        <s:param name="value"><s:date name="userBean.birthday" format="yyyy-MM-dd" /></s:param>
                </s:textfield>
                <!-- 密码不能回填 -->
                <s:password name="userBean.password" label="密码" ></s:password>
                <s:textarea name="userBean.des" label="描述" cols="35" rows="8"></s:textarea>
               
                <!-- 这种checkbox显示出来是一行只有一个checkbox
                <s:iterator value="likeList">
                        <s:checkbox name="userBean.likes" label="%{name}" fieldValue="%{id}"></s:checkbox>
                </s:iterator>
                -->
                <!-- 这种是一行多个 -->
                <s:checkboxlist list="likeList" name="userBean.likes" listKey="id" listValue="name" label="爱好"></s:checkboxlist>
               
                <!-- 下拉框
                <s:select list="likeList" listKey="id" listValue="name" headerKey="-1" headerValue="请选择爱好"></s:select>
                -->
                <!-- value="1" 设置默认,但是好像设置了不能回填 -->
                <s:radio list="#{'1':'男','2':'女'}" label="性别"  name="userBean.sex"></s:radio>
                <s:submit value="%{tip}" id="submitBut" method="%{tip}"></s:submit>
        </s:form>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: