zoukankan      html  css  js  c++  java
  • struts2基础梳理(二)

         本篇主要有:设置struts2匹配的扩展名。使用通配符,值栈,声明式异常以及标签。

    设置扩展名:

       默认是对.action和不加不论什么扩展名的进行处理。能够设置:

        <constant name="struts.action.extension" value="action,do,"></constant>//对.action,.do和不加不论什么的拦截

    通配符:

       为了简化action的配置,能够使用通配符,大致写法例如以下:

    <action  name="user_*" class="jsky.action.ActionTestAction" method="{1}">
          <result name="success" >/pages/{1}.jsp</result>
          <result name="error" >/pages/error2.jsp</result>
          </action>
       规则:优先匹配无通配符的。若多个通配符的action,按先后顺序{1}{2}第一。二个字符串

    值栈:

       存放action的堆栈,分为对象栈和Map栈

       对象栈:  訪问方式:object.propertyName ; object['propertyName'] ; object["propertyName"]
                       对象能够通过一个从零開始的下标来引用. ObjectStack 里的栈顶对象能够用 [0] 来引用, 
              它以下的那个对象能够用 [1] 引用。从[0]个对象開始向下搜索匹配的对象
                         Name:<s:property value="[0].name"/>
                          Pass:<s:property value="pass"/>

        Map栈:里边保存着各种 Map:requestMap, sessionMap, applicationMap, parametersMap, attr
                      訪问方式:#object.propertyName ; #object['propertyName'] ; #object["propertyName"]
                      session:<s:property  value="#session.sessionKey2"/>

    声明式异常:

        指定action出异常时去的页面 。大致使用方法是:

         result指定异常后去的页面,exception指的是发生的异常类型

        <action  name="actiontest2" class="jsky.action.ActionTestAction" method="log">
         <exception-mapping result="error" exception="java.lang.ArithmeticException"></exception-mapping>
          <result name="success" >/pages/show2.jsp</result>
          <result name="error" >/pages/error2.jsp</result>
         </action>

    标签:

       struts2带额标签特别多,这里简单提一下:

    •   prperty 标签 
            Pass:<s:property value="pass"/>对象
            session:<s:property  value="#session.sessionKey2"/><br>Map

    •   URL标签
       
      <!-- URL标签 -->
        <s:url  value="/testurl" var="url">
         <s:param name="testId" value="110"></s:param>
        </s:url>
        ${url }
         <hr>
           自己主动对value值OGNL解析。若希望输入字符串有效。加''
        <s:url  value="/testurl" var="url2">
         <s:param name="testId" value="testId"></s:param>
        </s:url>
        ${url }
         <hr>
        <s:url  value="/testurl" var="url3">
         <s:param name="testId" value="'testId'"></s:param>
        </s:url>
        ${url3 }
        <hr>
          构建请求action的字符串
        <s:url action="testAction" namespace="/hello" method="login" var="url4"></s:url>
        ${url4}

    • Iterator标签
       
      <s:iterator value="#request.users">
         ${name }:${pass }<br>
         </s:iterator>

    • 表单标签:
      自带排版,自己主动回显等。


    最后是一个注冊的功能来巩固这些标签,效果例如以下:


    核心的代码例如以下:

      input.jsp

    <body>
      <s:form action="Regis_save">
      <s:textfield name="name" label="Name"> </s:textfield>
      <s:password name="password" label="Password"></s:password>
      <s:radio name="gender" list="#{'1':'male','0':'femal'}" label="Gender"></s:radio>
      <s:select name="department" list="#request.department" listKey="departmentId" listValue="departmentName" label="Department"></s:select>
      <s:checkboxlist name="role" list="#request.role" listKey="roleId" listValue="roleName" label="Role"></s:checkboxlist>
      <s:submit value="submit"></s:submit>
      </s:form>
      
    </body>
     welcome.jsp:

    <body>
    Name: ${name }<br>
    Pass:${password }<br>
    Gender:${gender }<br>
    Department: ${department }<br>
    Role:${role }
    </body>
    基本的action:

    public String input()
    {
    	request.put("department", dao.getDept());
    	request.put("role", dao.getRole());
    	return "input";
    }
    public String save()
    {
    	return "success";
    }
    private Map<String, Object> request;
    @Override
    public void setRequest(Map<String, Object> arg0) {
    	// TODO Auto-generated method stub
        this.request=arg0;
    }



  • 相关阅读:
    接口自动化架构-获取用例
    Windows性能监控工具Perfmon使用指南
    接口自动化架构1-setting
    多进程
    线程锁、守护线程
    多线程
    xlrd模块
    封装写日志的类
    封装redis
    继承
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6732046.html
Copyright © 2011-2022 走看看