struts2使用ModelDriven接收不到表单数据 本帖最后由 mozhx2002 于 2012-10-18 11:53:30 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道是什么原因,如果不用ModelDriven的话,就可以接收到数据 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> 试试吧document对象删除掉不行 你试着在action随便定义一个String变量 在JSP接收下 再不行 不用S标签 用input 按2楼的方法解决了,将name="document.title"改为name="title"就OK了。这个的修改让我想到了个问题,如果我有两个表单,分别有相同的表单属性名title,这个时候action怎么将数据分别存放到不同的对象呢??? 不要实现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> 废一句话,看你的代码你有没有implements ModelDriven啊 @Overridepublic Object getModel() {return null;}这里return null,显然action得不到值 楼主action里好像没有写public Object setModel(Object o) { 我用的是非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> 试了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; }} /** * 子类重写该方法 */@Overridepublic Object getModel() {return null;}这个return null是错的,看看是调用哪个,则返回哪一个 java.lang.NullPointerException BigDecimal json与struts2有问题 struts1的formfile支持多个文件同时上传吗? JSP页面到底能不能用OCX????? 这里有java高手吗?jade混淆器如何使用??? 请问:启动weblogic81的问题 高分求助,在线等:向具有级联关系的表里写入数据,怎么获得子表的外键值比较好? hibernate 多表查询的显示问题 jboss3.2.1的部署问题(分少了点,别介意,这已经是我全部家当了:)) SSH整合小项目 web service连接问题
<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>
不要实现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>
public Object getModel() {
return null;
}这里return null,显然action得不到值
<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>
附我的代码: <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;
}
}
* 子类重写该方法
*/
@Override
public Object getModel() {
return null;
}
这个return null是错的,看看是调用哪个,则返回哪一个