Struts2學習筆記
第二記:Struts2的第一個應用
(1)、編寫struts.xml創建Action,如:ExampleAction
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="example" class="com.struts2.house.rent.action.ExampleAction" method="login">
<result name="login">/login.jsp</result>
</action>
</package>
</struts>
配置說明:
N1、name:包名,但不同於Java程序中的包名。
N2、namespace:命名空間,默認爲“/”,表示根路徑下。
N3、extends:繼承,主要是繼承struts2的攔截器功能。
N4、action_name:action的名稱,也可以是是別名,唯一標識。
N5、method:表示訪問該Action的login方法。
N6、result_name:表示訪問的視圖名稱,即jsp頁面的名稱。
(2)、編寫Action對應的Java文件:
public class ExampleAction{ //無侵入式實現,這裏沒有像Struts1一樣依賴於Action
private String msg;
public String getMessage(){
return msg;
}
public String login(){
msg="Hello,World!";
return "login";//表示要提交的視圖名稱,返回的必須是string
}
}
(3)、視圖表現層:
在JSP中導入Struts2的標籤:
s-tag:<%@ taglib prefix="s" uri="/struts-tags" %>
s2-tag:<%@ taglib prefix="s2" uri="/struts-tags" %>
sx-tag:<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
s標籤:<s:property value="This is my frirst Struts2 application!" />,s標籤含有許多用法:如<s:if>,<s:bean>,<s:param>,<s:iterator>...等等。
s2標籤:<s2:form action="login">
<s2:textfield name="users.name" label="username"></s2:textfield><br/>
<s2:password name="users.password" label="password"><s2:password><br/>
<s2:submit >login</s2:submit>
</s2:form>
sx標籤:<sx:a targets="pageDiv" href="a_link_url" errorText="...error...">
<s:property value="點這裏" />
</sx:a> //生成超鏈接..................
EL表達式: ${message};//注意:直接獲取後臺傳送的值,是get方法名而不是成員變量,必須提供get方法才行。
(4)訪問action對應的視圖:
在瀏覽器中輸入項目名稱及其訪問路徑:
如,http://localhost:8080/StrutsTest/example/login.action
根路徑:http://localhost:8080/StrutsTest/
如果package的命名空間是"/test/user"
則訪問路徑是:http://localhost:8080/StrutsTest/test/user/example/login.action
注:”.action“可以省略不寫。