• Struts-2.3.24.1官方例子-struts2-blank


    一、配置文件

    1.web.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     5 
     6     <display-name>Struts Blank</display-name>
     7 
     8     <filter>
     9         <filter-name>struts2</filter-name>
    10         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    11     </filter>
    12 
    13     <filter-mapping>
    14         <filter-name>struts2</filter-name>
    15         <url-pattern>/*</url-pattern>
    16     </filter-mapping>
    17 
    18     <welcome-file-list>
    19         <welcome-file>index.html</welcome-file>
    20     </welcome-file-list>
    21 
    22     <!-- Restricts access to pure JSP files - access available only via Struts action -->
    23     <security-constraint>
    24         <display-name>No direct JSP access</display-name>
    25         <web-resource-collection>
    26             <web-resource-name>No-JSP</web-resource-name>
    27             <url-pattern>*.jsp</url-pattern>
    28         </web-resource-collection>
    29         <auth-constraint>
    30             <role-name>no-users</role-name>
    31         </auth-constraint>
    32     </security-constraint>
    33 
    34     <security-role>
    35         <description>Don't assign users to this role</description>
    36         <role-name>no-users</role-name>
    37     </security-role>
    38 
    39 </web-app>

    2.struts.xml

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     4     "http://struts.apache.org/dtds/struts-2.3.dtd">
     5 
     6 <struts>
     7 
     8     <constant name="struts.enable.DynamicMethodInvocation" value="false" />
     9     <constant name="struts.devMode" value="true" />
    10 
    11     <package name="default" namespace="/" extends="struts-default">
    12 
    13         <default-action-ref name="index" />
    14 
    15         <global-results>
    16             <result name="error">/WEB-INF/jsp/error.jsp</result>
    17         </global-results>
    18 
    19         <global-exception-mappings>
    20             <exception-mapping exception="java.lang.Exception" result="error"/>
    21         </global-exception-mappings>
    22 
    23         <action name="index">
    24             <result type="redirectAction">
    25                 <param name="actionName">HelloWorld</param>
    26                 <param name="namespace">/example</param>
    27             </result>
    28         </action>
    29     </package>
    30 
    31     <include file="example.xml"/>
    32 
    33     <!-- Add packages here -->
    34 
    35 </struts>

    3.example.xml

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC
     3         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
     4         "http://struts.apache.org/dtds/struts-2.0.dtd">
     5 
     6 <struts>
     7     <package name="example" namespace="/example" extends="default">
     8 
     9         <action name="HelloWorld" class="example.HelloWorld">
    10             <result>/WEB-INF/jsp/example/HelloWorld.jsp</result>
    11         </action>
    12 
    13         <action name="Login_*" method="{1}" class="example.Login">
    14             <result name="input">/WEB-INF/jsp/example/Login.jsp</result>
    15             <result type="redirectAction">Menu</result>
    16         </action>
    17 
    18         <action name="*" class="example.ExampleSupport">
    19             <result>/WEB-INF/jsp/example/{1}.jsp</result>
    20         </action>
    21 
    22         <!-- Add actions here -->
    23     </package>
    24 </struts>

    4.

    二、action

    1.

     1 /*
     2  * $Id$
     3  *
     4  * Licensed to the Apache Software Foundation (ASF) under one
     5  * or more contributor license agreements.  See the NOTICE file
     6  * distributed with this work for additional information
     7  * regarding copyright ownership.  The ASF licenses this file
     8  * to you under the Apache License, Version 2.0 (the
     9  * "License"); you may not use this file except in compliance
    10  * with the License.  You may obtain a copy of the License at
    11  *
    12  *  http://www.apache.org/licenses/LICENSE-2.0
    13  *
    14  * Unless required by applicable law or agreed to in writing,
    15  * software distributed under the License is distributed on an
    16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17  * KIND, either express or implied.  See the License for the
    18  * specific language governing permissions and limitations
    19  * under the License.
    20  */
    21 
    22 package example;
    23 
    24 import com.opensymphony.xwork2.ActionSupport;
    25 
    26 /**
    27  * Base Action class for the Tutorial package.
    28  */
    29 public class ExampleSupport extends ActionSupport {
    30 }

    2.

     1 /*
     2  * $Id$
     3  *
     4  * Licensed to the Apache Software Foundation (ASF) under one
     5  * or more contributor license agreements.  See the NOTICE file
     6  * distributed with this work for additional information
     7  * regarding copyright ownership.  The ASF licenses this file
     8  * to you under the Apache License, Version 2.0 (the
     9  * "License"); you may not use this file except in compliance
    10  * with the License.  You may obtain a copy of the License at
    11  *
    12  *  http://www.apache.org/licenses/LICENSE-2.0
    13  *
    14  * Unless required by applicable law or agreed to in writing,
    15  * software distributed under the License is distributed on an
    16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17  * KIND, either express or implied.  See the License for the
    18  * specific language governing permissions and limitations
    19  * under the License.
    20  */
    21 
    22 package example;
    23 
    24 import java.util.Arrays;
    25 import java.util.List;
    26 
    27 /**
    28  * <code>Set welcome message.</code>
    29  */
    30 public class HelloWorld extends ExampleSupport {
    31 
    32     public String execute() throws Exception {
    33         setMessage(getText(MESSAGE));
    34         return SUCCESS;
    35     }
    36 
    37     /**
    38      * Provide default valuie for Message property.
    39      */
    40     public static final String MESSAGE = "HelloWorld.message";
    41 
    42     /**
    43      * Field for Message property.
    44      */
    45     private String message;
    46 
    47     /**
    48      * Return Message property.
    49      *
    50      * @return Message property
    51      */
    52     public String getMessage() {
    53         return message;
    54     }
    55 
    56     /**
    57      * Set Message property.
    58      *
    59      * @param message Text to display on HelloWorld page.
    60      */
    61     public void setMessage(String message) {
    62         this.message = message;
    63     }
    64 
    65     public List<YesNo> getValues() {
    66 //        return null;
    67         return Arrays.asList(YesNo.values());
    68     }
    69 }

    3.

     1 /*
     2  * $Id$
     3  *
     4  * Licensed to the Apache Software Foundation (ASF) under one
     5  * or more contributor license agreements.  See the NOTICE file
     6  * distributed with this work for additional information
     7  * regarding copyright ownership.  The ASF licenses this file
     8  * to you under the Apache License, Version 2.0 (the
     9  * "License"); you may not use this file except in compliance
    10  * with the License.  You may obtain a copy of the License at
    11  *
    12  *  http://www.apache.org/licenses/LICENSE-2.0
    13  *
    14  * Unless required by applicable law or agreed to in writing,
    15  * software distributed under the License is distributed on an
    16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17  * KIND, either express or implied.  See the License for the
    18  * specific language governing permissions and limitations
    19  * under the License.
    20  */
    21 
    22 package example;
    23 
    24 import org.apache.struts2.interceptor.validation.SkipValidation;
    25 
    26 public class Login extends ExampleSupport {
    27 
    28     @Override
    29     public String execute() throws Exception {
    30         return SUCCESS;
    31     }
    32 
    33     @SkipValidation
    34     public String form() throws Exception {
    35         return INPUT;
    36     }
    37 
    38     private String username;
    39 
    40     public String getUsername() {
    41         return username;
    42     }
    43 
    44     public void setUsername(String username) {
    45         this.username = username;
    46     }
    47 
    48     private String password;
    49 
    50     public String getPassword() {
    51         return password;
    52     }
    53 
    54     public void setPassword(String password) {
    55         this.password = password;
    56     }
    57 
    58 }

    4.

    1 package example;
    2 
    3 public enum YesNo {
    4     YES, NO, middle
    5 }

    三、JSP

    1.HelloWorld.jsp

     1 <%@ page contentType="text/html; charset=UTF-8" %>
     2 <%@ taglib prefix="s" uri="/struts-tags" %>
     3 <html>
     4 <head>
     5     <title><s:text name="HelloWorld.message"/></title>
     6 </head>
     7 
     8 <body>
     9 <h2><s:property value="message"/></h2>
    10 
    11 <h3>Languages</h3>
    12 <ul>
    13     <li>
    14         <s:url id="url" action="HelloWorld">
    15             <s:param name="request_locale">en</s:param>
    16         </s:url>
    17         <s:a class="test" href="%{url}">English</s:a>
    18     </li>
    19     <li>
    20         <s:url id="url" action="HelloWorld">
    21             <s:param name="request_locale">es</s:param>
    22         </s:url>
    23         <s:a href="%{url}">Espanol</s:a>
    24     </li>
    25 </ul>
    26 
    27 <!-- 在package.properties配置信息 -->
    28 <s:checkboxlist name="test" list="values" listLabelKey="'test-' + name().toLowerCase()" />
    29 
    30 </body>
    31 </html>

    2.Login.jsp

     1 <%@ page contentType="text/html; charset=UTF-8" %>
     2 <%@ taglib prefix="s" uri="/struts-tags" %>
     3 <html>
     4 <head>
     5     <title>Sign On</title>
     6 </head>
     7 
     8 <body>
     9 <s:form action="Login">
    10     <s:textfield key="username"/>
    11     <s:password key="password" />
    12     <s:submit/>
    13 </s:form>
    14 </body>
    15 </html>

    3.Menu.jsp

    1 <%@ page contentType="text/html; charset=UTF-8" %>
    2 <%@ taglib prefix="s" uri="/struts-tags" %>
    3 <s:include value="Missing.jsp"/>

    4.Missing.jsp

     1 <%@ page contentType="text/html; charset=UTF-8" %>
     2 <%@ taglib prefix="s" uri="/struts-tags" %>
     3 <html>
     4 <head><title>Missing Feature</title></head>
     5 
     6 <body>
     7 <p>
     8     <s:text name="Missing.message"/>
     9 </p>
    10 </body>
    11 </html>

    5.Register.jsp

    <%@ page contentType="text/html; charset=UTF-8" %>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <s:include value="Missing.jsp"/>

    6.Welcome.jsp

     1 <%@ page contentType="text/html; charset=UTF-8" %>
     2 <%@ taglib prefix="s" uri="/struts-tags" %>
     3 <html>
     4 <head>
     5     <title>Welcome</title>
     6     <link href="<s:url value="/css/examplecss"/>" rel="stylesheet"
     7           type="text/css"/>
     8 </head>
     9 
    10 <body>
    11 <h3>Commands</h3>
    12 <ul>
    13     <li><a href="<s:url action="Login_input"/>">Sign On</a></li>
    14     <li><a href="<s:url action="Register"/>">Register</a></li>
    15 </ul>
    16 
    17 </body>
    18 </html>

    7.

    四、资源文件等

    1.package.properies

    1 HelloWorld.message= Struts is up and running ...
    2 requiredstring = ${getText(fieldName)} is required.
    3 password = Password
    4 username = User Name
    5 Missing.message =  This feature is under construction. Please try again in the next interation.
    6 test-yes=Yo
    7 test-no=Nein
    8 test-middle=mod

    2.Login-validation.xml

     1 <!DOCTYPE validators PUBLIC
     2         "-//Apache Struts//XWork Validator 1.0.2//EN"
     3         "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
     4 
     5 <validators>
     6     <field name="username">
     7         <field-validator type="requiredstring">
     8             <message key="requiredstring"/>
     9         </field-validator>
    10     </field>
    11     <field name="password">
    12         <field-validator type="requiredstring">
    13             <message key="requiredstring"/>
    14         </field-validator>
    15     </field>
    16 </validators>

    3.velocity.properies

    1 runtime.log.logsystem.class=org.apache.velocity.runtime.log.NullLogChute
  • 相关阅读:
    20191211 HNOI2017 模拟赛 问题A
    20191211 HNOI2017模拟赛 C题
    BZOJ 3681 Arietta
    netcore3.1中的Json操作
    netcore2.2出现的新特性HealthCheck
    MVC为什么要使用TagHelper?
    psql备份csv文件
    DataAnnotations的使用及细节处理
    记录一次mac安装node遇到的错误
    记录一次netcore3.0 code first使用迁移命令报错问题
  • 原文地址:https://www.cnblogs.com/shamgod/p/5269544.html
Copyright © 2020-2023  润新知