具體相關頁面及相應配置如下:
在struts1.x系列中,所有的請求是通過一個servlet(ActionServlet)來管理控制的,在Struts2.0而是經過一個Filter來處理請求的
web.xml :
<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>*.action</url-pattern>
</filter-mapping>
login.html:
<form action="login.action" method="post"> //在 web.xml中配置了請求的形式是*.action
username:<input type="text" name="username" /><br/>
password:<input type="password" name="password" /><br/>
<input type="submit" name="submit" value="submit" />
</form>
在struts1.x中有一個struts-config.xml來管理一些具體的配置信息(比如說數據源,全局轉發,異 常,ActionForm,Action的實例,插件等)
在struts2.x中類似的有一個配置該類信息的文件struts.xml.
struts.xml:
<struts>
<package name="struts2" extends="struts- default">
<action name="login" class="com.struts2.x.action.LoginAction">
<result name="success">main.jsp</result><!-- 默認name="success" ,可 以省略不寫呢!-->
</action>
</package>
</struts>
在struts1.x中要求action要繼承import org.apache.struts.action.Action,並改寫execute (ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)方法,在struts2.x中解藕了,不需要硬性的與其他類綁定
以下是登陸的action:
public class LoginAction {
private String username;
private String password;
//省略getter和setter方法
public String execute() throws Exception
{
return "success";
}
}
main.jsp
Hello!${requestScope.username}
在main.jsp中獲得輸入的用戶名.
Ps:
注意:在手動添加struts2.x jar包的時候,並不能一股腦的全部加進來,用到什麼功能就把什麼樣jar 包加進來,但是有幾個核心(core)的jar包必須要加進來
經過測試 如果僅僅加入這個幾個jar包會抱一個異常,到網上查資料,還要把
這個jar包加進去才可以!
(我打包導出為*.war格式,壓縮成.rar格式,下載後直接把struts2.x.war文件放在tomcat應用服務器 的webapps文件夾中)