我最近在学stuts2,碰到一个问题,就是option中值后台是取不到的嘛,
后台action代码:public class OtherAction {
         private int sTaskId ;
public int getsTaskId() {
return sTaskId;
}
public void setsTaskId(int sTaskId) {
this.sTaskId = sTaskId;
}
      public String addHomeWork(){
System.out.println(sTaskId);
return null;
}
}
前台jsp代码:
<form name="ff" action="other!addHomeWork.action" method="post">
<table width="790" height="82" border="1">
<tr>
<th scope="row"><select name="sTaskId">
     <option value="0">请选择</option>
     <s:iterator value="#attr.list1" var="temp1">
     <option value="${temp1.id }">${temp1.title}</option>
     </s:iterator>
     </select>
     </th>
<td><input type="submit" value="提交" /></td>
</tr>
</table>
</form>
xml中的配置: <package name="ccc"  namespace="/"  extends="json-default">
<action name="other" class="com.bjsxt.action.OtherAction">
     <result name="success" type="redirect">managIndex.jsp</result>
     <result name="upLoad"></result>
     </action>
</package>
当我提交后请求other!addHomeWork.action这个之后,System.out.println(sTaskId);
这句话打印的总是0;难道option中的值在sturts2的action中是取不到的嘛??求高手解答

解决方案 »

  1.   

    我想应该是你的get和set方法有问题,get和set后的字母都应该是大写的你的是小写的S,所以找不到对应的方法,默认设置为0
      

  2.   

    public int getsTaskId() {
    return sTaskId;
    }
    public void setsTaskId(int sTaskId) {
    this.sTaskId = sTaskId;
    }这段代码有问题
      

  3.   

    楼上说的都对、sTaskId这在规范中是不正确的、前俩个字母(还是前三个字母)尽量避免大写、 前三个要么全大写要么全小写、否则会找不到setter getter换个taskId 变量名就能接收到了、
      

  4.   

    个人觉得这get和set方法看着就感觉不正常。。
      

  5.   

    额, 不是感觉,是一定get set这个地方有问题
    还要提醒你strut2 有个这样的标签<s:select list="%{#session.sub}" //存放在httpSession的list集合                listKey="sname" //下拉列表要中列表框要显示的值                 listValue="sname"//下拉列表的值                ......   
      

  6.   

    不要这么取名字,他会去调,getSTaskId ();setSTaskId (); so not find
      

  7.   

    嗯 set get方法用开发工具自动生成