当前位置: 代码迷 >> J2EE >> struts2使用ModelDriven接收不到表单数据解决方法
  详细解决方案

struts2使用ModelDriven接收不到表单数据解决方法

热度:33   发布时间:2016-04-17 23:35:50.0
struts2使用ModelDriven接收不到表单数据
本帖最后由 mozhx2002 于 2012-10-18 11:53:30 编辑
struts2使用ModelDriven接收不到表单数据document 对象所有属性都是null
action类代码:
public class DocumentAction extends BaseAction {
private static final long serialVersionUID = -4869407518855971025L;
private Document document = new Document();


public String add() throws Exception {
System.out.println(document.getContent());
return SUCCESS;
}

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

private static final long serialVersionUID = -4522508376651310198L;

/**
 * 子类重写该方法
 */
@Override
public Object getModel() {
return null;
}

}
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> 

-------------------------------------------------------------------
后台出导常代码:

[framework] 2012-10-18 11:39:18,234 - com.opensymphony.xwork2.ognl.OgnlValueStack -16594 [http-8080-1] WARN  com.opensymphony.xwork2.ognl.OgnlValueStack  - Error setting expression 'document.content' with value '[Ljava.lang.String;@e671a1'
ognl.OgnlException: target is null for setProperty(null, "content", [Ljava.lang.String;@e671a1)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2239)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.ASTChain.setValueBody(ASTChain.java:227)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
------解决思路----------------------
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>
  相关解决方案