日期:2014-05-18  浏览次数:20674 次

琢磨了好几天了没搞定啊!如何向actionForm装载已有数据?
一般我们都是用jsp+actionForm+acctionServlet的形式录入和保存数据,这对于新建一条记录来说是可以的。那么,我如何修改一条记录呢?我这里是input.jsp?id=1,需要根据id=1来装载已有数据到jsp页面,当然要装载到actionForm里。我现在是在actionForm的reset里装载已有数据的(根据request里的id从数据库读取),但是总感觉有些问题。那么,类似问题一般应该怎么处理?是不是可以在reset里装载?还是有其他更好的方法?
谢谢,在线等待结贴!

------解决方案--------------------
修改时,根据主键,判断有存在则进行修改,无则进行插入。
------解决方案--------------------
vc模式?
------解决方案--------------------
首先你应该是思想很明确的:
1)添加时判断主键是否存在,即ID有没有有了就不能添加.没有可以添加
2)修改判断是否有次记录有的情况下修改此记录.传值时要使用你数据库对应的ID.
------解决方案--------------------
是的。问题是何时赋值?何处赋值?我在reset里赋值,不知道对不对?
可以啊,就是这么做的
------解决方案--------------------
个人认为数据的设定不应该是在actionForm里做,而是在action里做。
如果这样想的话,其实事情很简单。
input.jsp?id=1
这个jsp执行之前,总归有个action处理吧,它提交也总归有个action处理吧?
action里是可以得到id这个参数的,对吧?
那么好了,告诉你一个歪招,估计不是正统的玩法。
actionForm的类型 IamActionForm = (actionForm的类型)session.getAttribute(actionForm的名字);
然后通过id判断你要做什么,通过IamActionForm这个变量,你想干什么都能干什么,当然这个时候actionform的scope是session。

以上。
------解决方案--------------------
肯定不是在RESET方法里面,楼主你的意思是不是说你要添加一条数据到数据库里面去,但是前提是要判断以这个ID在数据库里面是不是也有这样的ID,方便的话QQ聊(注明原因),410406239!
------解决方案--------------------
我说vc就是提醒你漏掉m

你知道在执行reset()和validate()之间会做什么事情吗?


btw:

mvc模式。就是利用struts
------------------------
可笑


------解决方案--------------------
不用在reset里做
action里做就可以了
action会有你的对应的actionForm
**Form.set***(你想要赋值的变量);

------解决方案--------------------
结的好快啊,我刚看到问题。
下午继续去培训。
感觉楼主对MVC还不怎么了解,如果楼主想做WEB开发的话,应该仔细看下,不要满足于完成功能,功能一般有好多种实现,关键是那种更好。MVC是一种比较成熟的设计模式,仔细研究吧。
不说了,去培训了。
------解决方案--------------------
to 楼主:
把你的方法也拿出来给大家看看。