struts2的基本配置實現

struts適用於MVC開發模式。

首先要先下載必要的jar包支持導入工程。在struts2的包中某些包需要插件導入包沒插件的包會出現錯誤。

基本功能包:

ognl-2.611.jar,

commons-logging-1.04.jar,

freemarker-2.3.8.jar,

xwork-2.0.5.jar,

struts-core-2.0.11.2.jar 五個包就可以。

struts主要開發MVC中的controller控制層

創建action類LoginAction

下面是配置用法:框架可以將V層提交的數據自動封裝進入Action 兩種接受參數的方式

這兩種方式在API中都有封裝好的攔截器

(1)域驅動方式

1.在創建的類中定義與表單提交域中名字相同的變量

2.提供getter和setter方法

 

private  String name;
private String password;
public String getName()
{
   return name;
}
public String setName(String name)
{
  this.name=name;
}
public String getPassword()
{
  return password;
}
public String setPassword(String password)
{
  this.password=password;
}


(2)模塊驅動

 

可以通過模型對象的方式封裝請求參數

首先要繼承接口覆蓋getModel方法

 ModelDriven<Admin>

Admin爲模型對象(實例化一個封裝類)

 

 

private Admin admin=new Admin();

 

 

 

public class LoginAction implements ModelDriven<Admin>{
   
	private Admin admin=new Admin();
    AdminBiz  adminbiz=new AdminBizImpl();
	@Override
	public Admin getModel() {
		// TODO Auto-generated method stub
		return admin;
	}


選擇第二種注意 提交的信息參數必須和封裝的變量一一對應 並且提供getter和setter方法。

 

選擇上面一種方式還要必須在action類中有一個public String execute()方法,該方法在訪問action時被框架自動調用實現控制邏輯。

接下來就要配置了,新建一個struts.xml文件在src目錄下才能使用

默認情況下都要繼承struts-default.xml中的struts-default包,其中定義了許多必要的的對象。

<?xml version="1.0" encoding="UTF-8"?>
<struts>
 <package name="com.icer.action" extends="struts-default">
    <action name="Login" class="com.icer.action.LoginAction">
     <result name="success">/index.jsp</result>
     <result name="fail">/index.jsp</result>
    </action>
 </package> 
</struts>

在index.jsp中的提交action=“Login”是struts配置中的name

 

當有多個sturts.xml文件時可以讓最開始的父類繼承struts-default其他只要繼承這個父類xml就可以。如下

 

<struts>
	<constant name="struts.ui.theme" value="simple"></constant>
	<constant name="struts.action.excludePattern" value="/dwr.*,/dwr/.*,/dwr/test/.*" />
	<package name="default" namespace="/" extends="struts-default">
		<action name="valcode" class="org.icer.easygo.action.common.ValcodeAction">
			<result type="stream">
				<param name="contentType">image/jpeg</param>
				<param name="inputName">input</param>
			</result>
		</action>
	</package>
	<include file="struts-user.xml"></include>
	<include file="struts-category.xml"></include>
	<include file="struts-product.xml"></include>
	<include file="struts-cart.xml"></include>
</struts>

struts-user.xml

<struts>

	<package name="user" namespace="/user" extends="default">
		<action name="user*" class="useraction" method="{1}">
			<result>${nextpage }</result>
			<result name="success_red" type="redirect">${nextpage }</result>
		</action>
	</package>

</struts>



 

 

最後要在項目的web.xml中定義struts的過濾器

<!-- 配置struts2的過濾器 -->
  <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*/</url-pattern>
   </filter-mapping>




 

 

 

 

 

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