1. 程式人生 > >Struts2 Hello,Wold

Struts2 Hello,Wold

imp util 文件 ack .com 結果 跳轉 window 包含

軟件152 蘇銳

現在以Struts2的方式來做一個Hello,world的實例程序。創建這樣一個程序,至少需要下面這些元素:

1. 創建一個Action類:HelloAction.java

2. 創建一個jsp頁面:hello.jsp

3. 配置struts.xml

首先先來創建一個Action,Struts2的Action可以是一個簡單的JavaBean(包含一些屬性並有get和set方法):

   1: package com.kay.action;
   2:  
   3: public class HelloAction {
   4:  
   5:     //屬性
   6:     private String userName;
   7:     private String userPwd;
   8:     
   9:     //屬性的get和set方法
  10:     public String getUserName() {
  11:         return userName;
  12:     }
  13:     public void setUserName(String userName) {
  14:         this.userName = userName;
  15:     }
  16:     public String getUserPwd() {
  17:         return userPwd;
  18:     }
  19:     public void setUserPwd(String userPwd) {
  20:         this.userPwd = userPwd;
  21:     }
  22:     
  23:     /**
  24:      * Struts2中Action執行的方法
  25:      * @return result code
  26:      * @throws Exception
  27:      */
  28:     public String execute()throws Exception{
  29:         userName = "Kay";
  30:         return "success";
  31:     }
  32: }

從上面的Action中看出,就是在JavaBean中放入一個execute方法,在該方法中給屬性userName賦值並返回了一個“success”字符串。

下面再來創建顯示頁面hello.jsp:

   1: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
   2: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
   3: <html>
   4:   <head>
   5:     <title>hello.jsp</title>
   6:   </head>
   7:   <body>
   8:     歡迎你!${userName } <br>
   9:   </body>
  10: </html>

這個頁面中使用EL表達式來顯示用戶名。

有了Action和jsp頁面,那麽讓它們之間產生關系的就是struts.xml配置文件,首先需要在struts.xml配置文件中引入struts2.1的dtd,這段代碼可以在引入的struts-core-2.1.6.jar中的struts-2.1.dtd文件中可以找到:

   1: <!DOCTYPE struts PUBLIC
   2:     "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
   3:     "http://struts.apache.org/dtds/struts-2.1.dtd">

然後在struts.xml中配置Action:

   1: <?xml version="1.0" encoding="UTF-8"?>
   2: <!DOCTYPE struts PUBLIC
   3:     "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
   4:     "http://struts.apache.org/dtds/struts-2.1.dtd">
   5: <struts>
   6:     <package name="helloWorld" extends="struts-default">
   7:         <!-- action節點配置Action 
   8:         name:請求的Action名稱
   9:         class:對應的Action類
  10:          -->
  11:         <action name="hello" class="com.kay.action.HelloAction">
  12:             <!-- 根據返回的字符串指定跳轉到相應的頁面 -->
  13:             <result name="success">/hello.jsp</result>
  14:         </action>
  15:     </package>
  16: </struts>

在上面的配置文件中,需要重點關心的是action節點,name屬性對應了一會要在瀏覽器中請求的action的名稱,class屬性則是請求的action的完全限定名稱,action節點中還有result子節點,該子節點中的name屬性對應Action中execute方法返回的字符串,節點內容則是跳轉到相應頁面的路徑。

到這裏,helloworld實例的全部代碼就完成了,需要在瀏覽器中測試代碼的運行結果,在瀏覽器中輸入http://localhost:8080/s2/hello.action,會出現以下結果:

技術分享

需要註意的是在Struts2中Action默認的後綴名為.action,也可以在配置文件中更改此默認的後綴名,這個後面會提到。

到這個實例結束,web工程的截圖應如下所示:

技術分享

Struts2 Hello,Wold