求教 struts2 表单回写功能

梦魇流莺 2011-06-18 09:14:41
比如我做了个添加新闻的表单,我想把我编辑新闻的表单也用这个表单,当我要编辑某个新闻是struts标签自动将我要编辑的那条新闻的数据写进表单让我更新,
比如我要修改标题为 ***的 新闻,当我点击编辑后,表单里就填上了***新闻的数据等待我编辑但这个表单和添加新闻的表单是一个表单
(过去的方法是将表单input 的 value 值 用<%=%>将值输出以备编辑)
用struts 怎么实现啊
我QQ 229794802 在线求教
...全文
259 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zn85600301 2011-06-20
  • 打赏
  • 举报
回复
struts2标签本来就支持 数据回填

你在action定义一个提交对象 页面用标签提交时以对象.属性的形式提交 就可以了

如果是struts1 在action 执行完操作后 将参数重新放在request里面就可以了
54321 2011-06-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 rj0917 的回复:]

引用 4 楼 goodmhjmhj 的回复:
2楼不要误导别人哦~~~

其实就像3楼说的,只要用struts标签就可以实现了。新建时可以在相应的action中new一个新的新闻对象,编辑时在相应的action中根据传入的新闻的id把对应的新闻load出来,注意action要有一个新闻的属性,这样你就可以在页面中这样写 比如标题,<s:textfield id="title" name="……
[/Quote]

哥们不是说你哦~ 你是1楼
rj0917 2011-06-19
  • 打赏
  • 举报
回复
这个其实很简单,添加修改都用一个页面
你在那个页面中的文本框中写上value=“”,这里取你传过去的值,添加的页面肯定没有值,修改页面的话,从action中取到根据id传来的值,而点添加的话,你也可以选择跳转到action的一个方法中,这个方法你清空在界面要取得的象的值,这样,添加页面就是空的值了。而修改可以取到对应的值
我以前做过的东西部分代码:

/*
* 添加
*/
public String toAdd() {
//设置empInfo的目的是:将数据清空
empInfo = new Employee();
request.setAttribute("empInfo", empInfo);
//得到员工列表的集合
List<Dept> deptList = deptDao.getDeptList();
//在界面上动态生生部门的集合
request.setAttribute("deptList", deptList);
optType = "add";
return "toAdd";
}

/*
* 修改员工信息
*/
public String update() {
empService.update(empInfo);
return "update";
}
<result name="toAdd">content/emp/emp_update.jsp</result>
<result name="update" type="chain">EmplistAction</result>
<result name="save" type="chain">EmplistAction</result>

/*
* 添加
*/
public String save() {
empService.save(empInfo);
return "save";
}
这是修改界面一个文本框
<div class="div1">
<span class="span1">姓名</span>
<span><s:textfield name="empInfo.empName"
value="%{#request.empInfo.empName}" cssClass="txt1"
cssStyle="width:260px;"></s:textfield>
</span>
</div>


列表界面修按钮的写法
<a target="main" href="EmpfindAction.action?empInfo.empId=<s:property value="#empInfo.empId"/>">修改</a>

添加员工连接
<a href="EmptoAddAction.action" target="main">添加员工

这样差不多就行了。
rj0917 2011-06-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 goodmhjmhj 的回复:]
2楼不要误导别人哦~~~

其实就像3楼说的,只要用struts标签就可以实现了。新建时可以在相应的action中new一个新的新闻对象,编辑时在相应的action中根据传入的新闻的id把对应的新闻load出来,注意action要有一个新闻的属性,这样你就可以在页面中这样写 比如标题,<s:textfield id="title" name="xinwen.title"/>

这样就OK了……
[/Quote]

你可以说一下哪里不对,我有添加的时候,不是写的让New一个新的对象,修改的时候根据id取值么?
zjt321 2011-06-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rj0917 的回复:]
这个其实很简单,添加修改都用一个页面
你在那个页面中的文本框中写上value=“”,这里取你传过去的值,添加的页面肯定没有值,修改页面的话,从action中取到根据id传来的值,而点添加的话,你也可以选择跳转到action的一个方法中,这个方法你清空在界面要取得的象的值,这样,添加页面就是空的值了。而修改可以取到对应的值
我以前做过的东西部分代码:

/*
* 添加
*/
publi……
[/Quote]
+1
54321 2011-06-19
  • 打赏
  • 举报
回复
2楼不要误导别人哦~~~

其实就像3楼说的,只要用struts标签就可以实现了。新建时可以在相应的action中new一个新的新闻对象,编辑时在相应的action中根据传入的新闻的id把对应的新闻load出来,注意action要有一个新闻的属性,这样你就可以在页面中这样写 比如标题,<s:textfield id="title" name="xinwen.title"/>

这样就OK了,如果还不明白可以加我QQ 835967446
  • 打赏
  • 举报
回复
strits本身就提供了表单值回填的效果。你只要使用struts本身提供的标签输入就可以了。
wang1986614 2011-06-19
  • 打赏
  • 举报
回复
用js控制标签;
页面显示的时候标签只读,当点击编辑的时候标签可用!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧