修改文章信息
1)首先一个页面先根据文章列表传过来的ID获取文章实体,并把信息显示在页面Article_updateInput.jsp上
该页面的代码如下    <form action="admin/Article_update" method="get">
    <input type="text" name="article.id" value="<s:property value="article.id"/>" >
    <input  type="text" name="article.kind"  value="<s:property value="kind.id"/>"><br>
  name :<input name="article.title"  value="<s:property value="article.title"/>"><br>
<!--   kind   :<input name="kind.name"  value="<s:property value="kind.name"/>"><br> -->
   cont:<textarea name="article.cont" ><s:property value="article.cont"/></textarea> <br>
  
   <input type="submit" value="update" />3)接下来调用Article_update这个Action 执行update的方法 public String update(){
int flag=0;
flag=articleService.update(article);
if(flag>0)
return SUCCESS;
else 
return ERROR;
}4)但是奇怪的结果出现update方法中的参数articles实体竟然只有title有值,Article的其他字段都没有值。
5)最后的结果当然也就是没行更新信息了
PS:我可以保证不存在拼写等低级错误。
一下是修改前ActionSupport子类中声明的私有字段,公有略过! private List<String> titleList;
private List<Article> listModel;
private Article article;
private Kind kind;
private int id;-----------改进-----------
我只做了一个小小的改动
在ActonSupport的子类中多声明了private Article article2这个对象;
update方法也把参数article改成article2 public String update(){
int flag=0;
flag=articleService.update(article2);
if(flag>0)
return SUCCESS;
else 
return ERROR;
}以下也进行相应的改变
    <form action="admin/Article_update" method="get">
    <input type="text" name="article2.id" value="<s:property value="article.id"/>" >
    <input  type="text" name="article2.kind"  value="<s:property value="kind.id"/>"><br>
  name :<input name="article2.title"  value="<s:property value="article.title"/>"><br>
<!--   kind   :<input name="kind.name"  value="<s:property value="kind.name"/>"><br> -->
   cont:<textarea name="article2.cont" ><s:property value="article.cont"/></textarea> <br>
  
   <input type="submit" value="update" />结果竟然可以成功
---------------------------------------------------
问题,为什么会出现这样的状况。按照逻辑来讲只声明一个一个Article对象就实现,信息的保存和传递,但是我实验中竟然出现了要声明俩个Article对象,才能达到相应的效果新手 求懂的朋友帮忙解释下
----
以下是开发环境 strucs2 2.3.4 /MyEclipse 10/tomcat 7.x

解决方案 »

  1.   

    要是这个方法不能,你就实现ModelDriven接口吧。
    自己写个formbean。
    Struts2提供3种映射机制,这个不能就用别的吧
      

  2.   

    除去属性映射的第一种不说,用modelDriven接口早先已经试过,还是不行
    (PS:我用的structs2 2.3.4版本 )
      

  3.   

    建议将版本降低,有可能是其他包与struts2版本兼容问题。
    我一直用struts-2.2.3.1版本。没有发现这样的问题