本站首页    管理页面    写新日志    退出 [QQ:172832876] [MSN:lanlanq@hotmail.com]
麒麟在天欢迎您

.:日期

«September 2025»
123456
78910111213
14151617181920
21222324252627
282930

.:我的分类

.:最新日志

.:显示信息

blog名称:
日志总数:64
评论数量:34
留言数量:3
访问次数:342789
建立时间:2006年3月10日

.:留言板

.:链接

        公告

在属于自己的一片天空中,敲打着键盘,记录下自己感兴趣和认为自己因该回忆的碎片,可能是财富,也可能是不足,过后你会发现你的进步,这就足够。
[J2EE]webwork的学习和使用
luckystar 发表于 2006/3/10 9:40:37

接触webwork是应为工作的需要,应为新的公司环境要求webwork而非struts,只好采用这个。 其实个人认为webwork和struts的架构思想比较类似。比如webwork采用xwork.xml配置文件管理Action的调用趋向,和struts的struts-config.xml比较类似,只是没有了struts的formbean的定义,在xwork中只需指定Action就可以,让后通过设定Model,我认为Model就是一个formbean,然后再view,freemark中获得Model的值。 值得一提的我认为webwork的优势应该是拦截器功能 下边我把xwork.xml的具体说明列出以便熟悉 <xwork> <include file="webwork-default.xml"></include> <!--通过include节点,我们可以将其他配置文件导入到默认配置文件xwork.xml中  从而实现良好的配置划分。  这里我们导入了webwork提供的默认配置webwork-default.xml位于webwork.jar的根路径。 -->    <package name="default" extends="webwork-default" externalReferenceResolver="com.atlassian.xwork.ext.SpringServletContextReferenceResolver">   <interceptors>   <interceptor name="reference-resolver"   class="com.opensymphony.xwork.interceptor.ExternalReferencesIn   terceptor" />   <interceptor-stack name="WSStack">   <interceptor-ref name="params" />   <interceptor-ref name="model-driven" />   <interceptor-ref name="reference-resolver" />   </interceptor-stack>   </interceptors>    <!--     xwork中,可以通过package对action进行分组。类似java中package和class的关系。     为可能出现的同名action提供了命名空间的隔离。     同时,package还支持继承关系。在这里我们定义的extends="webwork-default"     "webwork-default"是webwork-default.xml文件中定义的package,这里通过继承     "default"package自动拥有"webwork-default" package中所有的定义关系.     此外,我们还可以在package节点中指定namespace,将我们的action分为若干个逻辑区间。     比如:<package name="default" namespace="/user" extends="webwork-default">     就将此package中action定义划归为/user区间,之后在页面调用action的时候我们需要     用/user/login.action作为form action的属性值。其中的/user/就指定了次acion的namespace     通过这样的机制,我们可以将系统内的action进行逻辑分类。      -->     <action name="login"      class="net.xiaxin.webwork.action.LoginAction">      <!--Action 配置节点,这里可以设定Action的名称和对应的实现类-->       <external-ref name="userDAO">     userDAOProxy     </external-ref>     <!--增加一个外部引用"userDAO",其值为userDAOProxy,这里spring中      userDAO Transaction Proxy 实例的引用名     -->       <result name="success" type="dispatcher">        <param name="location">/main.jsp</param>       </result>       <!--通过result节点,可以定义action返回语义,即根据返回值,决定处理模式        及其响应界面。        这里,返回值"success"(action调用返回值为String类型)对应的处理模式dispatcher.        可选的处理模式:        1、dispatcher//本系统页面间转向。类似forward.        2、redirect//浏览器跳转。可转向其他系统页面。        3、velocity//将指定的velocity模版作为结果呈现界面。        4、chain//将处理结果转交给另外一个action处理,以实现action的链接处理。        5、xslt//将指定的xslt作为结果呈现界面。       -->              <result name="loginfail" type="dispatcher">        <param name="location">/index.jsp</param>       </result>              <interceptor-ref name="WSStack" />              <!--        设定了施加于此action的拦截器(interceptor).        interceptor-ref定义的是一个拦截器的应用,具体的拦截器设定,实际上是        继承于webwork-default package,我们可以在webwork-default.xml中找到        对应的"params"和model-driven拦截器设置。        "params"大概是webwork中最重要,也最常用的一个interceptor。        将web页面中的输入元素封装在一个(请求)数据对象就是通过"params"拦截器        完成。interceptor将在action之前被调用,因而,interceptor也成为webwork        传来的map格式的数据转换为强类型java对象的最佳实现场所。        "model-driven"则是针对action的model驱动模式的Interceptor实现。       -->      </action>    </package> </xwork>

阅读全文(2491) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.183 second(s), page refreshed 144775986 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号