struct应用问题!!!高手请进!!!

donotsmoking 2008-10-10 03:02:58
现有一个项目中一个模块(添加、修改):添加和修改改所定位到的界面是同一个.jsp界面,是用STRUCTS标签作的界面。
提问:::
为什么当选择要修改的项时,能把所修改的具体信息,填充到其界面,即添加和修改所同有的界面。前提是:没有任何特殊处理,而添加时则信息为空白。
其修改中查找的代码如下:::
IbaseService service = (IbaseService)this.getObject("BaseService");
ActionErrors errors=new ActionErrors();
Long id = new Long(httpServletRequest.getParameter("id"));
BbsqForm form=(BbsqForm)actionForm;

try {
Bbsq obj=(Bbsq)service.findObject(Bbsq.class,id);
BeanUtil.beancopyProperties(form,obj);
return actionMapping.findForward(STRADD);
}
STRADD所对应的界面和添加的界面是一致的:::::
STRUCT标签有这种功能吗????????

...全文
108 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fosjos 2008-10-16
  • 打赏
  • 举报
回复
Long id = new Long(httpServletRequest.getParameter("id"));
添加的时id没有值,findObject返回空的对象,beancopyProperties后form各属性就是空了
donotsmoking 2008-10-15
  • 打赏
  • 举报
回复

yingShisscWang和jumpheightway 能不能给个具体的例子!!邮箱为::shmilykxb@126.com


jumpheightway 2008-10-11
  • 打赏
  • 举报
回复
struts配置文件的action中有两个属性,一个是name,一个是attribute
name的主要作用是表单提交提取数据
而attribute的作用是action返回数据是时候使用
能够使用的前提是必须要使用struts标签才有效
否则只能够通过scope属性的值点getAttribute取出来才能够用
如果不用attribute属性
action中类似功能的代码为:
request/session.setAttribute();
页面使用通过:
request/session.getAttribute();
这样效果就是一样的了
numbcola 2008-10-10
  • 打赏
  • 举报
回复
如果你是想说,由于页面的重用而导致在添加的时候,文本框里显示的都是null,你想让他变成空白的话,那就很简单,你做个小方法,把这个做一个新的对象,全部的字段都设置为“”(空字符串),然后传过去。
yingShisscWang 2008-10-10
  • 打赏
  • 举报
回复
你是想问为什么添加画面页面的项目是空白,而修改的页面项目是有值的?

假设你的actionform已经在struts-config里设定为“request”,取名叫testform
那么当页面加载的时候,struts采取的策略是,首先判断在request里是否存在名字叫testform的ActionForm类实例,如果存在,就直接用这个实例,那样如果页面上的项目名字和form中的名字相同就能直接重form中读到值,修改画面的值就是这么出来的。

如果request里没有叫testform的ActionForm实例,struts会自动的定义一个testform实例,当然,这个实例是未经赋值的,画面上也就没有值。
如果添加和修改用的同一个画面,那么画面加载的时候request里formbean的状态应该是不一样的,具体看你的代码了。

不知道你想问的是不是这个,我随便说说我了解的一些基础知识。

donotsmoking 2008-10-10
  • 打赏
  • 举报
回复
我知道这种(从界面对应对FORM中,然后再把form中的值对应到实体BEAN,用HIBERNATE的ORM进行插入操作),能返过来(不用REQUEST或SESSION存),比如修改操作,选择要修改的项,通过
IbaseService service = (IbaseService)this.getObject("BaseService");
ActionErrors errors=new ActionErrors();
Long id = new Long(httpServletRequest.getParameter("id"));
BbsqForm form=(BbsqForm)actionForm;

try {
Bbsq obj=(Bbsq)service.findObject(Bbsq.class,id);
BeanUtil.beancopyProperties(form,obj);
return actionMapping.findForward(STRADD);
} 然后再从前台界面中取出!!!

Valkyriebbi 2008-10-10
  • 打赏
  • 举报
回复
恩~~~~~~~~
  • 打赏
  • 举报
回复
STRUCT标签当然有这种功能!非常实用!只要form中属性和页面上控件的名称一一对应就可以了!

67,538

社区成员

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

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