Strust2HelloWorldAnnotation

struts2註解需要struts2 convention plugin,所以你必須要理解Scanning Methodology 和Naming Converter原理

strust2掃描特定的包名struts,strust2,action,actions

掃描怎麼工作:

掃描特定的類,放在struts,strust2,action或者actions

掃描符合下面條件之一的:

實現 com.opensymphony.xwork2.Action的接口

    繼承 com.opensymphony.xwork2.ActionSupport 類

或以Action結尾的類(UserAction,LoginAction)

命名轉換:

如:LoginAction.java

首先去除類尾部的Action,

其次轉換類的第一個字母爲小寫

LoginAction.action改變爲login.action

pom.xml

  <dependency>
          <groupId>org.apache.struts</groupId>
	  <artifactId>struts2-core</artifactId>
	  <version>2.1.8</version>
    </dependency>
 
    <dependency>
          <groupId>org.apache.struts</groupId>
	  <artifactId>struts2-convention-plugin</artifactId>
	  <version>2.1.8</version>
    </dependency>
創建LoginAction繼承ActionSupport,ActionSupport默認返回success字符串

package com.dufeng.action;
 
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.ResultPath;
 
import com.opensymphony.xwork2.ActionSupport;
 
@Namespace("/User")
@ResultPath(value="/")
@Result(name="success",location="/WEB-INF/view/login.jsp")
public class LoginAction extends ActionSupport{
 
}
xml相等的形式:

<package name="user" namespace="/User" extends="struts-default">
	<action name="Login">
		<result>pages/login.jsp</result>
	</action>
</package>
重載execute()方法,指定特定的@Action和@Result註解

package com.dufeng.action;
 
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.ResultPath;
 
import com.opensymphony.xwork2.ActionSupport;
 
@Namespace("/User")
@ResultPath(value="/")
public class WelcomeUserAction extends ActionSupport{
 
	private String username;
 
	public String getUsername() {
		return username;
	}
 
	public void setUsername(String username) {
		this.username = username;
	}
 
	@Action(value="Welcome", results={
		@Result(name="success",location="/WEB-INF/view/welcome_user.jsp")
	})
	public String execute() {
 
		return SUCCESS;
 
	}
}
xml相等:

<package name="user" namespace="/User" extends="struts-default">
   <action name="Welcome" class="com.dufeng.action.WelcomeUserAction">
	<result name="SUCCESS">pages/welcome_user.jsp</result>
   </action>
</package>
login.jsp

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head></head>
<body>
<h1>Struts 2 Hello World Annotation Example</h1>
 
<s:form action="Welcome">
	<s:textfield name="username" label="Username"/>
	<s:password name="password" label="Password"/>
	<s:submit/>
</s:form>
 
</body>
</html>
welcome_user.jsp

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head></head>
<body>
<h1>Struts 2 Hello World Annotation Example</h1>
 
<h4>Hello <s:property value="username"/></h4>
 
</body>
</html>

 web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
 
<web-app>
  <display-name>Struts 2 Web Application</display-name>
 
  <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>



發佈了19 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章