![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
struts2和hibernate整合的问题 15
第一个问题:整合的时候,网上查资料说是把属性写在Action中,设置get,set方法,在请求的时候自动把数据封装到属性。但是hibernate还要做对象映射,那如果这样...
第一个问题:整合的时候,网上查资料说是把属性写在Action中,设置get,set方法,在请求的时候自动把数据封装到属性。但是hibernate还要做对象映射,那如果这样的话所有属性都在Action中了,hibernate映射的实体类起啥作用呢?我知道我的理解有误,请大虾赐教!
第二个问题:是不是根据需求可以在Action中人为的添加属性?Action中属性对应的值最终是保存在数据库中吧?
第三个问题:Struts2中的值栈,这个实在不懂,求详解
还有一个,继承ActionSupport后,重写execute方法,这个方法什么时候执行?
小生初学,最好通俗易懂。 展开
第二个问题:是不是根据需求可以在Action中人为的添加属性?Action中属性对应的值最终是保存在数据库中吧?
第三个问题:Struts2中的值栈,这个实在不懂,求详解
还有一个,继承ActionSupport后,重写execute方法,这个方法什么时候执行?
小生初学,最好通俗易懂。 展开
展开全部
1:ibernate映射的实体类是用于持久化对象用的,action当中的封装的实体是取form表单当中的值用的,只不过如果你的form表单当中取得数据如果是一张表的内容的话,恰巧跟hibernate的实体类一样罢了,如果为了获取form表单的内容在action当中写很多的setter getter方法太麻烦,你可以用我上面说的,在action当中定义一个实体的setget方法,然后通过实体类获取属性
2:是这样得,你可以根据form表单的内容自己设置属性,记住数据库什么类型,设置的属性就是什么类型
3:struts有两个核心类, ActionContext ValueStack ActionContext是对HttpServletRequest,HttpservletSession等进行封装成Map结构,ValueStack是List结构,从form表单当中获取的属性值就是通过params拦截器放在Valuestack当中,方法是ActionContext,getContext.getValueStack().push()把数据放到栈顶,pop()弹栈,在action当中可以把值通过ActionContext,getContext.getValueStack().push()放到值栈当中,在jsp直接获取,也可以通过ActionContext,getContext.put()放到request当中,通过#{}获取
2:是这样得,你可以根据form表单的内容自己设置属性,记住数据库什么类型,设置的属性就是什么类型
3:struts有两个核心类, ActionContext ValueStack ActionContext是对HttpServletRequest,HttpservletSession等进行封装成Map结构,ValueStack是List结构,从form表单当中获取的属性值就是通过params拦截器放在Valuestack当中,方法是ActionContext,getContext.getValueStack().push()把数据放到栈顶,pop()弹栈,在action当中可以把值通过ActionContext,getContext.getValueStack().push()放到值栈当中,在jsp直接获取,也可以通过ActionContext,getContext.put()放到request当中,通过#{}获取
追问
你说的第一点,就是说action中封装的实体就是针对form的,如果form提交的数据不是hibernate映射的实体类,就在form中写属性然后就是对应的get,set方法;如果form提交的内容很多且恰好是hibernate映射的实体类那就在action中设置实体类的set,get方法。是这样吗?
第二点,平时在写的时候ValueStack的属性啊,方法啊用的多不?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询