struts1.2_struts-config配置

1.引用头:

     <!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

2.全局跳转与异常

  2.1:

     <global-forwards>
        <forward name="loginsuccess" path="/index.jsp" />
        <forward name="fail" path="/fail.jsp"></forward>
    </global-forwards>

  2.2 首先在<global-exception>(全局异常)或<action>(局部异 常)元素中嵌 套<exception>元素,一个<exception>元素代表一种类别的异常,如下:

       <exception type="type" handler="handler" path="path" key="key" bundle="bundle" scope="scope"/>

      type:指定待处理的异常类。

       handler:指定异常处理类,默认值为 org.apache.struts.action.ExceptionHandler。如果设置为用户 自定义的异常处理类,则该类必须继承ExceptionHandler。

      path:指定转发路径。

      key:指定错误消息的key,Struts框架将根据这个key到Resource Bundle中寻找匹配的消息文本。

      bundle:指定Resource Bundle,如果没有设置此项,将使用默认的Resource Bundle。

      scope:指定ActionMessages的存放范围,可选值包括request和session。默认值为 request。

在指定了所有的异常后,可以加一个<exception type="java.lang.Exception" .../>来捕获尚未指定的其它异常,并可以指定该key的值为"系统错误......"。

     <global-exceptions>
        <exception key="error.exception"
            type="com.struts.action.ErrorCodeException"
            handler="com.struts.action.ErrorCodeExceptionHandler"
            path="/fail.jsp">
        </exception>
    </global-exceptions>

 

   public class ErrorCodeException extends RuntimeException {
   
   
       public ErrorCodeException(String errorCode) {
           super(errorCode);
     }

 }

     public class ErrorCodeExceptionHandler extends ExceptionHandler {
       public ActionForward execute(Exception ex, ExceptionConfig ae,  
            ActionMapping mapping, ActionForm formInstance,  
            HttpServletRequest request, HttpServletResponse response)  
            throws ServletException {  
     
            if(!(ex instanceof ErrorCodeException)){
                if (ex instanceof NullPointerException) {
                    throw new ErrorCodeException("请确认数据完整,否则联系管理员!");
                }
                return super.execute(ex, ae, mapping, formInstance, request, response);  
            }  
              
            ActionForward forward = null;  
            ActionMessage error = null;  
            String property = null;  
     
            // Build the forward from the exception mapping if it exists  
            // or from the form input  
            if (ae.getPath() != null) {  
                forward = new ActionForward(ae.getPath());  
            } else {  
                forward = mapping.getInputForward();  
            }  
     
            // Figure out the error  
            if (ex instanceof ModuleException) {  
                error = ((ModuleException) ex).getActionMessage();  
                property = ((ModuleException) ex).getProperty();  
            } else {  
                  
                ErrorCodeException appe = (ErrorCodeException) ex;  
                // ae.getKey() 没用  
                // appe.getMessage() ("用户不能找到【" + username + "】  
                error = new ActionMessage(ae.getKey(), appe.getMessage());  
                property = error.getKey();  
            }  
     
            this.logException(ex);  
     
            // Store the exception  
            request.setAttribute(Globals.EXCEPTION_KEY, ex);  
            this.storeException(request, property, error, forward, ae.getScope());  
     
            return forward;  
    }

}

   3.action、actionform配置:

     3.1---actionform分 ActionForm与 DynaValidatorForm细分带验证与非验证的

         <form-bean  type="com.struts.action.login.LoginForm"  name="LoginForm" />

         <form-bean name="upFileForm" type="org.apache.struts.action.DynaActionForm">
            <form-property name="file"  type="org.apache.struts.upload.FormFile" />
            <form-property name="userid" type="java.lang.String[]" />
        </form-bean>

        <form-bean name="addUserActionForm"  type="org.apache.struts.validator.DynaValidatorForm">
            <form-property name="phone" type="java.lang.String" />
            <form-property name="userid" type="java.lang.String" />
            <form-property name="username" type="java.lang.String" />
        </form-bean>

    3.2--action分Action、DispatchAction、 LookupDispatchAction、MappingDispatchAction

        LookupDispatchAction  

通过这个Action抽象类继承DispatchAction,它的相应方法的执行由 ActionMapping中parameter属性决定。它适合在一个form中有很多按钮,按不同的按钮则执行不同的操作。

   <action path="/test" type="org.example.MyAction" name="MyForm       scope="request" input="/test.jsp" parameter="method"/>

ApplicationResources.properties:

 

    button.add=Add Record

    button.delete=Delete Record

  JSP:

 

 

   <html:form action="/test">

    <html:submit property="method">

      <bean:message key="button.add"/>

    </html:submit>

    <html:submit property="method">

      <bean:message key="button.delete"/>

    </html:submit>

  </html:form>

  在Action 中必须实现getKeyMethodMap:

 

 

  protected Map getKeyMethodMap() {

      Map map = new HashMap();

      map.put("button.add", "add");

      map.put("button.delete", "delete");

      return map;

  }

 

 

  public ActionForward add(ActionMapping mapping,

          ActionForm form,

          HttpServletRequest request,

          HttpServletResponse response)

          throws IOException, ServletException {

      // do add

      return mapping.findForward("success");

  }

 

 

  public ActionForward delete(ActionMapping mapping,

          ActionForm form,

          HttpServletRequest request,

          HttpServletResponse response)

          throws IOException, ServletException {

      // do delete

      return mapping.findForward("success");

  }

 

MappingDispatchAction

public class MappingDispatchAction extends DispatchAction

它的相应方法的执行由 ActionMapping中parameter名决定,注意这里和LookupDispatchAction不同,LookupDispatchAction的 相应方法的执行由 ActionMapping中parameter属 性决定,

 

 

struts-config.xml:

 

 

 

 

   <action path="/saveSubscription"

           type="org.example.SubscriptionAction"

           name="subscriptionForm"

          scope="request"

          input="/subscription.jsp"

      parameter="method"/>

 Action:

 

 

public ActionForward create(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception

public ActionForward edit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception

public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception

public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception

public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception

for which you would create corresponding <action> configurations that reference this class:

 

 

 

 

  <action path="/createSubscription"

          type="org.example.SubscriptionAction"

          parameter="create">

      <forward name="success" path="/editSubscription.jsp"/>

  </action>

 

  <action path="/editSubscription"

          type="org.example.SubscriptionAction"

          parameter="edit">

      <forward name="success" path="/editSubscription.jsp"/>

  </action>

 

 

  <action path="/saveSubscription"

          type="org.example.SubscriptionAction"

          parameter="save"

          name="subscriptionForm"

          validate="true"

          input="/editSubscription.jsp"

          scope="request">

      <forward name="success" path="/savedSubscription.jsp"/>

  </action>

 

 

  <action path="/deleteSubscription"

          type="org.example.SubscriptionAction"

          name="subscriptionForm"

          scope="request"

          input="/subscription.jsp"

          parameter="delete">

      <forward name="success" path="/deletedSubscription.jsp"/>

  </action>

 

 

  <action path="/listSubscriptions"

          type="org.example.SubscriptionAction"

          parameter="list">

      <forward name="success" path="/subscriptionList.jsp"/>

  </action>

 4.资源文件:

     <message-resources  parameter="com.sordine.meter.struts.ApplicationResources" />

 5.验证插件:

      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
          <set-property property="pathnames"
            value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
      </plug-in>

    

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
antlr-2.7.2.jar, aopalliance-1.0.jar, asm-3.3.jar, asm-commons-3.3.jar, asm-tree-3.3.jar, builder-0.6.2.jar, classworlds-1.1.jar, commons-beanutils-1.8.0.jar, commons-chain-1.2.jar, commons-collections-3.2.2.jar, commons-digester-2.0.jar, commons-fileupload-1.3.2.jar, commons-io-2.2.jar, commons-lang-2.4.jar, commons-lang3-3.2.jar, commons-logging-1.1.3.jar, commons-validator-1.3.1.jar, core-0.6.2.jar, dwr-1.1.1.jar, ezmorph-1.0.6.jar, freemarker-2.3.22.jar, google-collections-1.0.jar, google-gxp-0.2.4-beta.jar, guava-r09.jar, jackson-core-asl-1.9.2.jar, jackson-mapper-asl-1.9.2.jar, javassist-3.11.0.GA.jar, jcl-over-slf4j-1.5.8.jar, json-lib-2.3-jdk15.jar, juli-6.0.18.jar, mvel2-2.0.11.jar, ognl-3.0.19.jar, org.apache.felix.framework-4.0.3.jar, org.apache.felix.main-4.0.3.jar, org.apache.felix.shell-1.4.3.jar, org.apache.felix.shell.tui-1.4.1.jar, org.osgi.compendium-4.0.0.jar, org.osgi.core-4.1.0.jar, oro-2.0.8.jar, oval-1.31.jar, plexus-container-default-1.0-alpha-10.jar, plexus-utils-1.2.jar, sitemesh-2.4.2.jar, slf4j-api-1.7.12.jar, spring-aop-3.0.5.RELEASE.jar, spring-asm-3.0.5.RELEASE.jar, spring-beans-3.0.5.RELEASE.jar, spring-context-3.0.5.RELEASE.jar, spring-core-3.0.5.RELEASE.jar, spring-expression-3.0.5.RELEASE.jar, spring-test-3.0.5.RELEASE.jar, spring-web-3.0.5.RELEASE.jar, struts-core-1.3.10.jar, struts2-cdi-plugin-2.3.30.jar, struts2-codebehind-plugin-2.3.30.jar, struts2-config-browser-plugin-2.3.30.jar, struts2-convention-plugin-2.3.30.jar, struts2-core-2.3.30.jar, struts2-dojo-plugin-2.3.30.jar, struts2-dwr-plugin-2.3.30.jar, struts2-embeddedjsp-plugin-2.3.30.jar, struts2-gxp-plugin-2.3.30.jar, struts2-jasperreports-plugin-2.3.30.jar, struts2-javatemplates-plugin-2.3.30.jar, struts2-jfreechart-plugin-2.3.30.jar, struts2-jsf-plugin-2.3.30.jar, struts2-json-plugin-2.3.30.jar, struts2-junit-plugin-2.3.30.jar, struts2-osgi-admin-bundle-2.3.30.jar, struts2-osgi-demo-bundle-2.3.30.jar, struts2-osgi-plugin-2.3.30.jar, struts2-oval-plugin-2.3.30.jar, strut

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值