struts中select使用java中的enum类型

来源:互联网 发布:如何找淘宝主播合作 编辑:程序博客网 时间:2024/05/17 00:10
由于小项目中性别使用了enum,但是在jsp页面中,使用select不容易得到,于是查资料之后得到以下结论;
  1. enum类
    package com.zcg.model;public enum SEX {男("男"), 女("女");private String sex;private TYPE(String sex) {this.sex = sex;}public String getSex() {return sex;}public String toString(){return this.sex;}}
  2. User类
    package com.zcg.model; public class User {private int id;private String name;private SEX sex;        public int getId() {return id;}public String getName() {return name;}        public SEX getSex() {return sex;}         public void setId(int id) {this.id = id;}public void setName(String name) {this.name = name;}        public void setSex(SEX sex) {this.sex = sex;}}
  3. action类
    package com.zcg.action;import com.opensymphony.xwork2.*;public class UserAction extends ActionSupport{private User user;                @Overridepublic String execute() throws Exception   {return SUCCESS;}        public User getUser() {return user;}        public void setUser(User user) {this.user = user;}}

  4. jsp页面     
    jsp页面就不全贴出来了,name是action中命名一样加上属性 list中使用Enum的静态方法values()可以得到数组,listKey中的值理论上是name(),但是根据试验在java程序中能得到值,在jsp页面中没得到,使用listValue,值用默认的tostring方法得到值,并且显示到页面,这地方还是有点不大懂;
    <s:select name="user.sex" list="@com.zcg.model.SEX@values()" listKey="name()" listValue="toString()"/>
  5. 出来之后页面下拉列表会换行,主要是因为<s:select/>标签会被<tr><td>环绕,改成如下;
    <s:select name="user.sex" list="@com.zcg.model.SEX@values()" listKey="name()" listValue="toString()" theme="simple"/>
好了,真正意义上的第一篇博客才算是写完了,有不对的地方请指出;
0 0
原创粉丝点击