本帖最后由 JavaEthan 于 2012-03-27 12:13:56 编辑

解决方案 »

  1.   

    你这是struts1吧?把st.name的st.去掉,只有webwork里才支持这种写法。
      

  2.   

    方法一:直接在action中通过String stsex = request.getParameter("st.sex");String stName = request.getParameter("st.name");如果还是得不到值。则把st.sex写成sex把st.name写成name应该就可以得到、但是相应的也要改request.getParameter方法中的参数
    方法二:使用struts1标签 前提是要在页面中引入相应的标签
    <html:form action="st.do?op=doAdd" method="post">
              <table>
                  <tr>
                      <td>姓名</td>
                      <td><input type="text" name="name"/></td>
                  </tr>
                  <tr>
                      <td>性别</td>
                      <td><input type="text" name="sex"/></td>
                  </tr>
              </table>
              
              <input type="submit" value="提交">
          </html:form>
    但是必须有一个对应的form和你的action进行关联。
      

  3.   

    这个怎么就可以用了呀?楼主的思路是在action中定义了这个对象,然后form提交两个对象的属性。action中直接获取这个对象的两个属性值。请问楼主,你在action中定义对象的属性是st吗???还有action是怎么获取的?
      

  4.   

    域模型,name属性没有错误st.name,这个st在Action里面要有一个model的实例,比如St st=new St(),这个St是一个实体对象,封装了属性和属性的setter getter方法;另外,你表单的ACTION(st.do?op=doAdd)是什么东西啊,直接一个action名字就可以啊!
      

  5.   

    如果是用的struts2的话 ,  stu.name  的stu  要跟action中的stu对应上
      

  6.   

    form的名字需要跟input中的name属性一致
      

  7.   

    form中属性的名字需要跟input中的name 属性一致
      

  8.   

    只有WebWork和Struts里面才支持st.name这种格式。
      

  9.   

    如果为了方便取数据,你可以将姓名和性别等这些信息封装成一个VO类,在action类中为这个VO类提供setter和getter方法,这样在jsp中就可以通过这个action中的VO对象名.属性名获取值了。例如:
    <td>姓名</td>
    <td><input type="text" name="useVO.name"/></td>还有种方法就是你直接在action中为name提供get和set方法,就可以这样写<td>姓名</td>
    <td><input type="text" name="name"/></td>这样也能获取值,两种方法都可以,关键看自己方便用哪种,通常建议用第一种,这样感觉封装好些希望能给你的问题提供到帮助~   
      

  10.   

    1.去掉st.
    2.在action中写name和sex的get和set方法,或者在实体类中写
      

  11.   

    这是struts1啊,你怎么用2的name啊,直接与form对应就可以的啊
      

  12.   

    貌似form表单中没有"st.do?op=doAdd"这种写法吧,如果要传值但不想在页面显示出来,直接用"hidden"就好了啊!!!!1
      

  13.   

    如果你用的是 struts2   那么在 action 里面要有一个  st  的对象 。。