• Struts2的crud


    struts2的crud引出的问题:

    1.当Action里面有其他类的实例引用属性时,当要用请求参数为该对象的属性赋值时,如何将其压入栈顶。

    2.当有的操作(list)不需要创建该属性的实例对象时,或者需要创建实例时,如何解决。

    3.struts.xml如何配置选择某一拦截器栈(比如:paramsPrepareParams拦截器栈),又如何通过struts.xml的配置修改某一拦截器的字段值(比如:PrepareInterceptor      的 alwaysInvokePrepare属性)。

    问题解决:

    1.通过Action实现ModelDriven接口,实现其getModel()方法,getModel()方法的返回值将被压入值栈栈顶。

    2.通过Action实现Preparable接口,然后在Action里面为每一个需要的方法准备对应的prepare[ActionMethodName]方法,比如:Action里面有save()方法,则需要创建        prepareSave()方法,通过其返回值来为save()方法准备实例,不需要则可以不准备。在实现了Preparable接口时,需要实现prepare方法,默认是执行的。

    3.选择paramsPrepareParams拦截器栈,并将prepare的alwaysInvokePrepare属性赋为false,并将此栈命名为gy,而且被配置使用:

    1 <interceptors>
    2         <interceptor-stack name="gy">
    3                <interceptor-ref name="paramsPrepareParamsStack">
    4                    <param name="prepare.alwaysInvokePrepare">false</param>
    5                </interceptor-ref>
    6          </interceptor-stack>
    7 </interceptors>
    8  
    9 <default-interceptor-ref name="gy"/>
  • 相关阅读:
    Supermap/Cesium 开发心得----获取三维视角的四至范围
    Supermap/Cesium 开发心得----定位
    GIS面试小知识点
    Oracle数据库小知识点整理
    利用 uDig 生成 GeoServer 可用的 SLD 渲染文件
    Geoserver设置style
    图片按宽高比1:1响应,窗口大小如何变化,图片宽高始终相等
    简单树
    递归渲染树
    div等高布局
  • 原文地址:https://www.cnblogs.com/gy19920604/p/4837599.html
Copyright © 2020-2023  润新知