struts中在struts-config.xml中的action配置項中attribute和name有什么區別啊﹖

iamsoloist 2005-02-03 04:21:14
name是actionForm的名﹐那attribute呢﹖謝謝
...全文
192 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamsoloist 2005-02-04
  • 打赏
  • 举报
回复
謝謝﹐明白拉﹕)
以梦为马 2005-02-04
  • 打赏
  • 举报
回复
啥也别说了,缘分啦~
skylan 2005-02-03
  • 打赏
  • 举报
回复
感谢!!!
SYC99 2005-02-03
  • 打赏
  • 举报
回复
可以先着手写写最简单的小case,比如无需验证的登陆页面什么的(好老土的提议)。

1、弄清楚配置文件的书写,基本配置元素的基本属性的含义
2、struts框架中书写最频繁的代码莫过于action的execute的方法了,其实这个方法中基本上包含以下内容:
(a)获得actionForm中属性信息
(b)actionForm属性信息的逻辑验证
(c)利用这些属性信息进行的业务逻辑运算
(d)根据业务逻辑运算结果和当前状态选择转发路径

当初我也不知代码从何下手,写着写着就通了,再看看别人的代码,仅此而已,努力努力:)
drugon 2005-02-03
  • 打赏
  • 举报
回复
一般都是用name。
skylan 2005-02-03
  • 打赏
  • 举报
回复
借宝地


楼上再深入的谈下,现在学习中,比如我现在不知道如何写代码应该怎么办?
SYC99 2005-02-03
  • 打赏
  • 举报
回复
当然,当你配置了attribute属性时,上面示例代码中的actionMapping.getName()就要用actionMapping.getAttribute()替代了
SYC99 2005-02-03
  • 打赏
  • 举报
回复
是这样的,当我们不再需要存储在request或session中的actionForm时,我们就应该把这个actionForm从request或session中删除掉,而不应该再让actionForm随request或session传递到页面中去,这时就要用到这个key值了。

示例代码(action.execute中):
// remove unused form
if("request".equals(actionMapping.getScope()))
{
httpServletRequest.removeAttribute(actionMapping.getName());
}
else if("session".equals(actionMapping.getScope()))
{
httpServletRequest.getSession().removeAttribute(actionMapping.getName());
}
iamsoloist 2005-02-03
  • 打赏
  • 举报
回复
to: SYC99
可是一般情況是在execute中有actionForm的參數啊﹐直接用就可以拉﹖謝謝
SYC99 2005-02-03
  • 打赏
  • 举报
回复
在实际开发中,我们一般不必去理会attribute属性的设置。

以上叙述我在初学struts时做过实验,你也可以试验一下,很简单。
iamsoloist 2005-02-03
  • 打赏
  • 举报
回复
就是沒用過﹐才要弄說明啊﹐謝謝樓上朋友
SYC99 2005-02-03
  • 打赏
  • 举报
回复
我们知道,actionForm是被存储在一定的scope中(request或session,通过action的scope属性来配置),当我们在配置时,指定name而不指定attribute,那么指定的name值就作为actionForm存储在scope中的key值,我们可以在action中通过httpServletRequest.getAttribute("指定的name属性值")来获得这个actionForm; 当我们既配置了name又配置了attribute,那么actionForm存储在scope中的key值就采用attribute属性指定的值了,这时要通过httpServletRequest.getAttribute("指定的attribute属性值")来获得actionForm,此时通过httpServletRequest.getAttribute("指定的name属性值")是不能获得actionForm的。

所以,是否配置attribute属性就决定了actionForm存储在scope中的key值是采用name,还是采用attribute
GJA106 2005-02-03
  • 打赏
  • 举报
回复
功能跟name一样--是设置和Action关联的Form Bean类。保存在request和session中,也就是说可以直接通过request.getAttribute()和session.getAttribute()得到FormBean实例值。是个可选项。
oioioi-090 2005-02-03
  • 打赏
  • 举报
回复
没有配过这个属性,一般只配type和name就好了!
iamsoloist 2005-02-03
  • 打赏
  • 举报
回复
up

67,513

社区成员

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

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