Struts simple example

One. Creating Aciton class

package com.my.frame;

public class HelloWordAction {
    
    private String name;
    
    public String execute() throws Exception    {
        
        return "success";
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return "HelloWordAction [name=" + name + "]";
    }
    
    

}

II. Create a view

login.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
   pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Hello World</title>
</head>
<body>
   <h1>Hello World From Struts2</h1>
   <form action="hello">
      <label for="name">Please enter your name</label><br/>
      <input type="text" name="name"/>
      <input type="submit" value="Say Hello"/>
   </form>
</body>
</html>

index.jsp

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
   Hello World, <s:property value="name"/>
</body>
</html>

three. Profiles

We need to put an image URL, (model) HelloWorldAction class and HelloWorld.jsp (view) together. Image informed Struts2 framework which class will respond to user actions (URL), which class method to be performed, and based on the results of the string returned will show how the view.
So let's create a file named  struts.xml  file. Because Struts2 requires strust.xml file appears in the folder classes, so we need to create struts.xml file in the WebContent / WEB-INF / classes folder.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
   <package name="helloworld" extends="struts-default">
     
      <action name="hello" 
            class="cn.w3cschool.struts2.HelloWorldAction" 
            method="execute">
            <result name="success">/HelloWorld.jsp</result>
      </action>
   </package>
</struts>

Here to say a few words about the above configuration file. Here we set the constant struts.devMode value is true , because we are working in the development environment, we need to see some useful log messages. Then, we define a named helloworld packet. When you want to put together your Actions, create a data package is very useful. In our example, we named our actions as "hello", and the URL of  /hello.action consistent by HelloWorldAction.class backup. HelloWorldAction.class the execute method is that when the URL of  /hello.action running when called. If the result returned by the execute method is "success", then we take the user to HelloWorld.jsp .

four. Create a web.xml file

<?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" 
   xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   id="WebApp_ID" version="3.0">
   
   <display-name>Struts 2</display-name>
   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>
   <filter>
      <filter-name>struts2</filter-name>
      <filter-class>
         org.apache.struts2.dispatcher.FilterDispatcher
      </filter-class>
   </filter>

   <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>
</web-app>

Top of the warning org.apache.struts2.dispatcher.FilterDispatcher will be reported out of date. Alternatively as follows

<filter>
      <filter-name>struts2</filter-name>
      <filter-class>
          org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
      </filter-class>
   </filter>

V. Enable detailed logging

By WEB-INF / classes to create a folder logging.properties file, you can enable the full realization of 2:00 logging in using Struts. Properties file to be retained the following two lines ::
org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = \
                              java.util.logging.ConsoleHandler

The default is specified by a ConsoleHandler logging.properties log records specified transmission route to stdout and FileHandler. Running log level threshold may be used SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST or ALL.

In this way, we are ready to use to run our Struts 2 Hello World procedure.

six. Access authentication;

Posted to tocat; access address: http: // localhost: 8080 / struts / login.jsp

Guess you like

Origin www.cnblogs.com/lukelook/p/11124807.html