各位好,我想问问struts2标签库的两个问题。
    第一:是关于单选框s:radio的问题。
    如下面所示,我有个单选框,让它默认是选择0,即是 “管理员”。
    <s:radio label="用户类型"  name ="type" list="#{'0':'管理员','1':'学生'}"  value="0"/>
   后台的action 的代码:
   private String type;
  public String getType()
{
return type;
} public void setType(String type)
{
this.type = type;
}
       /***省略部分代码*/
      public String execute()
{
try
{
if("0"==type)
{
type ="管理员";
}
else {
type ="学生";
}
  
    可是每次运行,得到的结果却是是type的值为0。可是在执行上面if-else判断的时候,却执行了else分支,即最后type ="学生"。这是为什么呢?
    第二个问题是关于下拉列表的问题。就是关于list里面的值是从后台来的怎么处理。
    因为我这里是用freeer作的视图,所以我就把StudentClass对象的列表存放到了session对象中。StudentClass就是班级的意思。我想在下拉列表来显示班级名,让人选择。
    
    List<StudentClass> list = mgr.findAllClass();
Map session = ActionContext.getContext().getSession();
session.put("classList",list);
    
    StudentClass的部分代码
    
    public class StudentClass
{
private int id;
/*班级名称,例如广告0604*/
private String className;
}
    
    然后我在前台的页面是这样的,在classList中有StudengClass对象,我想取出每个对象的className来作为下拉列表的值:
    
     <@s.select  name="studentClass"list="${classList}" theme="simple" listKey="className" label ="班级" />
    
    这样为什么不能把班级的名称显示在下拉列表上呢?如果要做怎么做?
    

解决方案 »

  1.   

    1.type为0,你改用equals试试2.<@s.select  name="studentClass"list="${classList}" theme="simple" listKey="className" label ="班级" />,看不懂你这什么写法<select  name="studentClass" label ="班级" >
       <s:foreach value="classList">
         <option>
           <s:property value="className"/> //对应实体类的属性
         </option>
       </s:foreach>
    </select>
      

  2.   

    我的是用freeer来做的,所以语法上和JSP是不一样的。