zoukankan      html  css  js  c++  java
  • 轻松搞定Struts 2:三步走上手小入门

    零、Struts 2是啥?

    SSH、SSM、SSI如雷贯耳,Struts 2 —— 是的,就这样了。。。

    一、Hello Struts2

    1、核心包

    2、struts.xml核心控制器配置

    <filter>
    <filter-name>Struts2</filter-name>
    <filter-class>
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
    </filter>
    <filter-mapping>
    <filter-name>Struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    二、Struts2核心

    1、Struts2可以通过get/set自动获取/设置数据

    这个很简单了,只需要通过IDE自动生成get-set属性就可以了。然后就可以在Jsp页面设置或者是获取属性。

    2、继承ActionSupport类

    确切的说,用户的自定义action可以不继承ActionSupport类(实现Action接口),不继承时只需要有一个方法,返回String即可。

    但是,继承ActionSupport类有诸多好处:能够使用struts预设的返回值/字符串,比如SUCCESS、ERROR、INPUT等;还可以重写execute方法等;最重要的就是可以与Struts更有效的无缝结合在一起(安全上和稳定性上做了很好的预处理),方便开发。
    当然需要牢记:在继承ActionSupport的情况下,必须有无参构造函数。

    3、Action设置数据、接收参数

    主要有属性驱动(FieldDriven) 和模型驱动(ModelDriven)两种方式。其中FD又分为基本数据类型属性和JavaBean类型属性。

    4、struts.xml配置

    ①pageckage 配置
    name 包名
    extends 继承
    namespace 包命名空间
    abstract 抽象包
    ②action 配置
    name action 名
    class 处理类
    method 方法
    ③分模块配置方法
    <include file="" ></include>
    ④使用通配符*

    <action name="*_*" class="com.ipragmatic.struts2.action.{1}Action" method="{2}">
    	<result>/{1}_{2}_success.jsp</result>
    </action>
    

      5、result配置

    主要是配置返回结果类型type这个属性
    ①默认是dispatcher:内部转发;
    ②redirect:重定向;
    ③chain:链条;
    ④redirectAction:重定向到action;

    上面4个常用,一定要掌握并分清楚区别!

    其他几个可以了解:
    freemarker:freemarker模版
    httpheader:返回一个已配置好的HTTP 头信息响应
    stream:将原始数据作为流传递回浏览器端,
    velocity:呈现Velocity 模板
    xslt 该XML:可以通过XSL 模板进行转换
    plaintext:返回普通文本类容

    6、动态方法调用(DMI)
    使用动态方法调用需要开启:<constant name="struts.enable.DynamicMethodInvocation" value="true" />

     

    三、值栈&OGNL

    OGNL是对象图导航语言Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言。

    1、OGNL访问ValueStack 数据
    <s:property value="account" />

    2、OGNL访问ActionContext 数据
    访问某个范围下的数据要用#
    #parameters 请求参数request.getParameter(...);
    #request 请求作用域中的数据request.getAttribute(...);
    #session 会话作用域中的数据session.getAttribute(...);
    #application 应用程序作用域中的数据application.getAttribute(...);
    #attr 按照page request session application 顺序查找值

    3、OGNL访问静态方法和属性
    访问静态方法或者静态属性的语法分别为:@类的路径@方法名,@类的路径@属性名,语法中类的路径,即包名+类名。
    需要注意的是,访问静态方法需要开启:<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>

    4、OGNL还可以访问复杂对象如:javaBean对象、访问集合对象、Map对象等。

     

    四、其他(国际化、标签、拦截器)

    标签

    Struts2封装了一套标签,相比JSTL更强大。其核心标签根据功能可划分为:数据标签,控制标签,界面标签,其他标签。
    数据标签
    Property 标签:输出OGNL 表达式的值;
    Set 标签:设置变量;
    Bean 标签:定义javaBean 对象;
    Date 标签:日期标签;
    Debug 标签:调试标签;
    Url&a 标签:超链接标签;
    Include 标签:动态包含标签;

    控制标签
    Ifelse 标签:条件判断标签;
    Iterator 标签:遍历标签;
    Append 标签:叠加标签;
    Generator 标签:分隔标签;
    Merge 标签:组合标签;
    Sort 标签:排序标签;
    Subset 标签:截取标签;

    界面标签
    Form 标签:表单提交标签;
    Text 标签:文本标签;
    Radios 标签:单选标签;
    Checkboxlist 标签:复选框标签;
    Select 标签:下拉框标签;

    其他标签
    Updownselect 标签;
    Optiontransferselect 标签;

    国际化

    国际化(Internationlization)是使软件实现对多语言的支持,Struts2的国际化设置方法很简单:
    <constant name="struts.custom.i18n.resources" value="iPragmatic"></constant>
    可以通过注入<s:text name=""></s:text>标签来访问国际化资源

     

     

  • 相关阅读:
    posix多线程有感POSIX 线程间的内存可视性
    同步和互斥的一些问题(死锁,优先级逆转)
    POSIX线程属性
    POSIX 条件变量详细解析
    VMware网络配置详解
    POSIX线程
    Java+Selenium——Actions鼠标悬停
    Java+Selenium——截图方法TakeScreenshot——保存到桌面——TakeScreenshot截图只针对浏览器的web事件
    Java+Selenium——利用Robot类截图——整个桌面截图
    Java+Selenium——如何处理日历控件——方法二
  • 原文地址:https://www.cnblogs.com/iPragmatic/p/Struts2.html
Copyright © 2011-2022 走看看