本帖最后由 mozhx2002 于 2012-10-18 11:53:30 编辑

解决方案 »

  1.   

    不知道是什么原因,如果不用ModelDriven的话,就可以接收到数据
      

  2.   

    jsp页面代码:
    <s:form action="add" namespace="/document" method="post">
      <s:textfield name="document.title"></s:textfield>
      <s:textfield name="document.content"></s:textfield>

      <s:submit value="保存"/>
      </s:form>  改为如下:
    <s:textfield name="title"></s:textfield>
      <s:textfield name="content"></s:textfield>
      

  3.   

    试试吧document对象删除掉不行 你试着在action随便定义一个String变量 在JSP接收下  再不行 不用S标签  用input
      

  4.   

    按2楼的方法解决了,将name="document.title"改为name="title"就OK了。这个的修改让我想到了个问题,如果我有两个表单,分别有相同的表单属性名title,这个时候action怎么将数据分别存放到不同的对象呢???
      

  5.   


    不要实现ModelDriven接口。
    action:
    private Document doc;
    private Document otherDoc;
    //getter setter页面:
    <s:textfield name="doc.title"></s:textfield>
      <s:textfield name="doc.content"></s:textfield>
    <s:textfield name="otherDoc.title"></s:textfield>
      <s:textfield name="otherDoc.content"></s:textfield>
      

  6.   

    废一句话,看你的代码你有没有implements ModelDriven啊
      

  7.   

    @Override
    public Object getModel() {
    return null;
    }这里return null,显然action得不到值
      

  8.   

    楼主action里好像没有写public Object setModel(Object o) {
      

  9.   

    我用的是非S标签,加上document.title可以正确传值;用s标签是不是不行啊?   <form name="form1" namespace="/document" action="addmessageAction.action" method="get">
         <table width="392" border="1">
           <tr>
             <td width="158">title:</td>
             <td width="218"><label for="textfield"></label>
              <input type="text" name="document.title" id="title"></td>
            </tr>
           <tr>
             <td>content:</td>
             <td><input type="text" name="document.content" id="content"></td>
            </tr>
           <tr>
             <td><input type="submit" name="submit" id="button" value="提交"></td>
             <td><input type="reset" name="reset" id="button2" value="重置"></td>
            </tr>
          </table>
    </form>
      

  10.   

    试了S标签一下,可以传值的啊。楼主,你是不是setContent()  方法没有写啊??
    附我的代码:   <s:form name="form1" namespace="/document" action="addmessageAction" method="get">
    <s:textfield name="document.title"></s:textfield><br/>
       <s:textfield name="document.content"></s:textfield><br/>
       <s:submit value="保存"/>
    </s:form>
    addmessageActionublic class AddmessageAction  extends BaseAction {

    private Document document= new Document();

    public Document getDocument() {
    return document;
    }
    public void setDocument(Document document) {
    this.document = document;
    }
    @Override
    public String execute() throws Exception {
    document.setId(10);

    return SUCCESS;
    }
    @Override
    public Object getModel() {

    return document;
    }
    }
    BaseAction代码:public class BaseAction  extends ActionSupport implements ModelDriven<Object>{
    @Override
    public Object getModel() {

    return null;
    }
    }
      

  11.   

    /**
     * 子类重写该方法
     */
    @Override
    public Object getModel() {
    return null;
    }
    这个return null是错的,看看是调用哪个,则返回哪一个