• Struts2-整理笔记(二)常量配置、动态方法调用、Action类详解


    1.修改struts2常量配置(3种)

    第一种

    在str/struts.xml中添加constant标签

    1 <struts>
    2     <!-- 如果使用使用动态方法调用和include冲突 -->
    3     <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    4     <!-- 开发者模式 -->
    5     <constant name="struts.devMode" value="true" />
    6 </struts>

    第二种

    src下新建一个struts.properties

    struts.enable.DynamicMethodInvocation=true
    struts.devMode=true

    第三种

    在web.xml 添加context-param标签
    <context-param>
      <param-name>键</param-name>
      <param-value>值</param-value>
    </context-param>
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      
      <context-param>
          <param-name>struts.i18n.encoding</param-name>
          <param-value>UTF-8</param-value>
      </context-param>
      
    </web-app>

    2.常用的常量配置

    struts.i18n.encoding=UTF-8
    i18n 国际化 解决post提交乱码
     
    struts.action.extension=action,,
    指定访问action时的后缀名 默认为action和空
     
    struts.devMode = false
    指定struts2是否以开发模式运行
    国际化可以不重启
    struts.xml不需要重启就可以生效(热加载)
    更多的错误信息提示
     
    struts.enable.DynamicMethodInvocation = false
    动态方法调用开启常量 默认是false 需要开启
     
    如果想找更多的常量配置可以到struts2-core-2.3.20.jar->org.apache.struts2->default.properties里 面有strtus默认的常量配置
     
    3.动态方法调用(2种)
    方式一
    第一步
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <!-- 配置动态方法调用是否开启常量 默认是关闭的,需要手动开启 -->
        <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    
        <package name="dynamic" namespace="/dynamic" extends="struts-default">
            <action name="Demo1Action" class="cn.zhr.Demo1Action">
                <result name="success" type="dispatcher">hello.jsp</result>
            </action>
        </package>
    </struts>

    第二步 通过输入网站地址 要使用!跟方法名

    http://localhost:8080/struts2_day01/dynamic/Demo1Action!add

    方式二

    利用通配符使用{来取出*号的内容}

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <!-- 配置动态方法调用是否开启常量 默认是关闭的,需要手动开启 -->
        <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    
        <package name="dynamic" namespace="/dynamic" extends="struts-default">
            <action name="Demo1Action_*" class="cn.zhr.Demo1Action" method="{1}">
                <result name="success" type="dispatcher">hello.jsp</result>
            </action>
        </package>
    </struts>

    http://localhost:8080/struts2_day01/dynamic/Demo1Action_add.action

    4.action类详解

    Action类的书写方式
    方式一:
    创建一个类,可以是POJO,不用继承任何父类,也不需要实现任何接口
    是struts2框架的代码侵入性更低
    public calss Demo3Action{}
     
    方式二:
    实现一个接口Action
    里面有execute方法,提供action方法的规范
    Action接口预置了一些字符串,可以返回结果时使用,为了方便
    public class Demo4Action implements Action{
      @Override
      public String execute() throws Exception{
        return null;
      }
    }
     
    方式三:
    继承一个类ActionSupport
    帮我们实现了Action,Validateable,ValidationAware,TextProvider,LocaleProvider
    如果我们需要使用到这些接口的实现时,不需要自己来实现了
    public class Demo5Action extends ActionSupport{
     
    }
     
  • 相关阅读:
    Django 前后端数据传输、ajax、分页器
    项目分层
    The Jaisalmer Desert Festival 2017/2/9
    Slacklining 2017/2/7
    Slacklining 2017/2/6
    SnowKiting 2017/1/24
    ADO1
    SnowKiting
    CSS-学习笔记六
    D Vitamin
  • 原文地址:https://www.cnblogs.com/moster/p/7853490.html
Copyright © 2020-2023  润新知