修改文章信息
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)首先一个页面先根据文章列表传过来的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
自己写个formbean。
Struts2提供3种映射机制,这个不能就用别的吧
(PS:我用的structs2 2.3.4版本 )
我一直用struts-2.2.3.1版本。没有发现这样的问题