Struts 2-속성 구동 및 모델 구동

8070 단어 struts2
Struts 2-속성 구동 및 모델 구동
1.왜 속성 구동 과 모델 구동 을 사용 합 니까?
        struts 2 와 struts 의 큰 차이 점 은 struts 의 execute 방법 이 Http ServletRequest 와 
    HttpServletResponse 방법 은 클 라 이언 트 가 제출 한 데이터 정 보 를 가 져 올 때 HttpServletRequest 를 사용 해 야 합 니 다.
    getParameter()방법 과 필요 한 데이터 형식 변환 이 필요 합 니 다.어떻게 클 라 이언 트 가 제출 한 데이터 양 이 많 을 때 저 희 는...
    getParameter 방법 을 많이 써 야 합 니 다.이렇게 하면 코드 의 양 이 상응 하여 적지 않 게 증가한다.하지만 struts 2 는 속성 구동 과 모델 을 제공 합 니 다.
    형 구동,그것 은 우리 가 많은 값 을 얻 는 방법 을 쓸 필요 가 없다.그리고 우리 가 Action 에서 해당 하 는 getter 방법 을 정의 하고 인터페이스 에서
    Action 의 변수 이름 은 폼 요소 의 name 속성 값 으로 사용 하면 됩 니 다.
2.속성 구동 과 모델 구동 은 어떤 차이 점 이 있 습 니까?
1.속성 드라이브
:속성 구동 에 대해 저 희 는 Action 에서 폼 요소 와 대응 하 는 모든 속성 을 정의 해 야 하기 때문에 Action 에서 getter 와 setter 방법 이 많이 나타 납 니 다.
2.모델 구동
:모델 구동 에 사용 되 는 Action 대상 은 ModelDriven 인 터 페 이 스 를 실현 하고 필요 한 유형 을 지정 해 야 합 니 다.Action 에서 우 리 는 단지
모든 데이터 정 보 를 봉 인 된 javabean 을 정의 하려 면
3.속성 과 모델 구동 의 공통점
:속성 드라이브 와 모델 드라이브 를 사용 할 때 폼 의 요소 중의 name 속성 값 과 데이터 정 보 를 받 는 변 수 를 정의 해 야 합 니 다.
대응 하 다
3.속성 구동 을 어떻게 사용 합 니까?
:속성 구동 의 실현 은 매우 간단 합 니 다.인 스 턴 스 는 다음 과 같 습 니 다.
자바 코드

package cn.actionctr;


import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;

public class OneAction extends ActionSupport {
	private String pname;
	private String address;
	private int age;
	private Date date;

	public String getPname() {
		return pname;
	}

	public void setPname(String pname) {
		this.pname = pname;
	}

	public String getAddress() {
		return address;
	}
		
            public void setAddress(String address) {
		this.address = address;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}
			
	@Override
	public String execute() throws Exception {
	
		return "success";//       success
              }
}

index.jsp
<body>

	<div>
	<form action="one" method="post">
		<table width="80%" align="center">
	<tr>
		<td>UserName:</td>
		<td><input type="text" name="pname" id="pname"/>       </td>
	</tr>
	<tr>
		<td>PassWord:</td>
		<td><input type="password" name="address" id="address"/></td>
	</tr>
	<tr>
		<td>Age:</td>
		<td><input type="text" name="age" id="age"/></td>
	</tr>
	<td>Date:</td>
		<td><input type="text" name="date" id="date"/></td>
	</tr>
	<tr>
		<td colspan="2"><input type="submit" value="submit"/></td>
	</tr>
	</table>
</form>
</div>
			

</body>

jsp 코드 show.jsp
<body>
<!--        -->

   :${pname}<br>

</body>

Struts.xml 설정
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<package name="my-packag" extends="struts-default" namespace="/">
		<!--        -->
		<action name="one" class="cn.actionctr.OneAction">
			<!--     success   ,    show.jsp -->
			<result>/jsps/show.jsp</result>
		</action>
	</package>

</struts>

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Strusts</display-name>
  
  
  <filter>
  <filter-name>s2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  <filter-name>s2</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
  <welcome-file-list>
  
    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>
</web-app>

4.모델 구동
:모델 구동 은 세 가지 가 다르다.
1.소 속 된 Action 은 ModelDriven 인 터 페 이 스 를 실현 하고 주어진 유형 과 인터페이스 에 있 는 getModel 방법 을 실현 해 야 합 니 다.
2.모든 속성 을 봉인 하 는 javabean 이 필요 합 니 다(1.주어진 형식 에 대응)
3.struts.xml 파일 에서 이 Action 을 설명 하 는 곳 에서 이 Action 을 차단기(Model DrivenInterceptor)로 만 듭 니 다.
:구체 적 인 실례 는 다음 과 같다.
package cn.actionctr;

import cn.domain.Person;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

	public class OneAction extends ActionSupport implements
	ModelDriven<Person/*      Person  */> {
					
		private Person person =  new Person(); 
               //  Person      getModel()         
	       //           ,  person      
					
		//public Person getPerson() { 
                //  person getter  ,        ,        
		//		return person;
		//}

		@Override
		public Person getModel() {
               //  ModleDriven   ,     person  
				return person;
		}

		@Override
		public String execute() throws Exception { 
               //    		  
           //   System.out.println(person.getPage()+""+person.getDate());
			         return "success";
			}
	}

Struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<package name="my-packag" extends="struts-default" namespace="/">
		<!--        -->
		<action name="one" class="cn.actionctr.OneAction">
			<!--     success   ,    show.jsp -->
			<result>/jsps/show.jsp</result>
			<interceptor-ref name="modelDriven"></interceptor-ref>
                
		<interceptor-ref name="defaultStack"></interceptor-ref>
		</action>
		
	</package>

</struts>
package cn.domain;


import java.util.Date;
public class Person {
		private String pname;
		private int page;
		private String address;
		

	

	public String getPname() {
			return pname;
	}

	public void setPname(String pname) {
			this.pname = pname;
	}

	public int getPage() {
			return page;
	}

	public void setPage(int page) {
			this.page = page;
	}

	public String getAddress() {
			return address;
	}

	public void setAddress(String address) {
			this.address = address;
	}
}

좋은 웹페이지 즐겨찾기