<s:select>选项diaplay对象地址

时间:2016-10-28 02:56:46

标签: jsp struts2 java-web-start case-sensitive struts-tags

我使用struts2将列表转换为JSP,但是<s:select>选项显示对象地址而不是name属性,为什么?

我的展示:

enter image description here

这是JSP:

<s:select  name="parentId" list="#departmentList" cssclass="SelectStyle" listkey="id" listvalue="name" >

这是DepartmentAction:

public String addUI() throws Exception {
    List<Department> departmentList = departmentService.findAll();
    ActionContext.getContext().put("departmentList", departmentList);
    return "saveUI";
}

这是部门:

private Long id;
private String name;
private String description;

private Set<User> users;
private Department parent;
private Set<Department> children;

2 个答案:

答案 0 :(得分:0)

我认为将您的列表直接放到ActionContext上并不是一个好主意,您可以在操作类中使用Session,或者使用getter / setter更好地列出。 为了更好地理解,您可以查看this

答案 1 :(得分:0)

案件事项:

  1. listKey!= listvalue
  2. listValue!= cssclass
  3. cssClass!= class(在最近的Struts2版本中,您可以使用<s:select name = "parentId" list = "#departmentList" cssClass = "SelectStyle" listKey = "id" listValue = "name" />
  4.   UPDATE mytable t
      SET t.commentforid = (SELECT x.id
    
                            FROM ( select z.id from mytable z
                            WHERE x.origin = 'POST' ) x on  x.id > t.id
                            LIMIT 1)
      WHERE t.origin = 'COMMENT'
    

    P.S:由于标签上允许的动态属性,您没有遇到错误。