8 동적 호출 Action 과 Action 중 방법(1)

Struts 1 은 DispatchAction 을 제공 하여 하나의 Action 에 여러 개의 업무 논 리 를 포함 합 니 다.
 
현재 우 리 는 Struts 2 를 사용 해도 현재 의 효 과 를 실현 할 수 있 으 며,마스크 를 사용 하여 이 루어 진 것 이다.
 
struts.xml 파일 에서 자주 사용 합 니 다.
       의 name,class,method 세 속성 모두 어댑터 지원
       어댑터 도 지원 합 니 다.
 
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>	
	<package name="struts2" extends="struts-default">
		<action name="*Action_*" class="ssh.org.web.{1}Action" method="{2}">
			<result name="success">/user/success.jsp</result>
			<result name="input">/user/user.jsp</result>	
		</action>
	</package>
</struts>


 
 위의 설정 에 대해 만약 내 가 당 긴 URL 이:http://localhost/struts/UserAction_addUser .action
 
UserAction_addUser 와*Action *매 칭  , 첫 번 째*는 User,두 번 째*는 addUser,
 
{1}의 값 은 User,  {2}의 값 은 addUser 이 고 대소 문 자 를 구분 합 니 다.
 
class="ssh.org.web.{1}Action"  할당 후,User 가{1}을 대체 합 니 다.
 
method="{2}"할당 후,addUser 가{2}을 대체 합 니 다.
 
그래서 동태 적 으로 Action 을 찾 고 Action 중의 방법 을 찾 습 니 다.
 
----------------------------------------------------------------------
 
그 중 하나 인 Action 코드:클래스 이름 은 UaerAction 입 니 다.  그 중 에 addUser()방법 이 있어 요.
 
URLhttp://localhost/struts/UserAction_addUser .action  일치 합 니 다.모드 는*Action *입 니 다.
 
package ssh.org.web;

import java.util.Date;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport
{
	private static final long	serialVersionUID	= 1L;

	private String				username;

	private int					age;

	private Date				birthday;

	private List<String>		aihao;

	public String addUser() throws Exception
	{
		//    
		return "success";
	}

	public void validateAddUser()
	{
		if (null == username || "".equals(username))
		{
			addFieldError("username", "       ");
		}
		System.out.println("validateAddUser()      ");
	}

	public String getUserList()
	{
		//      
		return "success";
	}

	public void validateGetUserList()
	{
		//     ...
		System.out.println("validateAddUser()      ");
	}

	public String getUsername()
	{
		return username;
	}

	public void setUsername(final String username)
	{
		this.username = username;
	}

	public int getAge()
	{
		return age;
	}

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

	public Date getBirthday()
	{
		return birthday;
	}

	public void setBirthday(final Date birthday)
	{
		this.birthday = birthday;
	}

	public List<String> getAihao()
	{
		return aihao;
	}

	public void setAihao(final List<String> aihao)
	{
		this.aihao = aihao;
	}
}
 
 
------------------------------------------------------------------
 
도 어댑터 를 지원 합 니 다.
 
struts.xml 파일 의 예:
 
		<action name="page_*" class="ssh.org.web.HrefAction" >
			<result name="success">{1}.jsp</result>			
		</action>
 
 
 
-----------------------------------------------------------------------
 
마지막 으로 우선 순 위 를 말씀 드 리 겠 습 니 다.
 
어댑터 일치 방식,우리 가 여러 개의   이 가능 하 다,~할 수 있다,...    매 칭 상,  그 거 먼저?
 
답:쓴 선착순 으로 먼저 찾 은 것 을 실행 하 라.
 
 
 
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기