2011-12-07 4 views
5

Struts2를 사용하여 웹 응용 프로그램을 만들고 모든 URL로 작업하는 매핑 된 작업에 문제가 있습니다.Struts 2 - URL로 작업하는 매핑 된 작업

내 struts.xml 파일에서 "register"라는 주된 기능을 가진 몇 가지 조치로 "/ registration"의 네임 스페이스로 패키지를 구성했습니다. 내 응용 프로그램의 컨텍스트 루트는 "app/test"입니다.

등록 양식에 액세스하려면 "localhost : 8080/app/test/registration/register.action"로 이동하여 양식을로드하고 잘 작동합니다.

그러나 "localhost : 8080/app/test/registration/임의/텍스트/here/register.action"과 같이 네임 스페이스 다음에 URL에 아무 것도 추가되면 양식이 여전히로드됩니다.

이 문제가 발생하지 않도록하고 싶습니다. 양식에 올바른 URL 만 액세스 할 수 있습니다. struts.xml과 web.xml에서 여러 가지 구성 옵션을 사용해 보았습니다. 웹에서이 문제에 대한 지식을 쉽게 찾을 수 없습니다.

감사합니다. 감사합니다.

struts.xml

<struts> 
    <package name="myPackage" namespace="/registration" extends="struts-default"> 
     <result-types> 
      <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/> 
     </result-types> 
     <action name="register" class="edu.uconn.test.action.RegistrationAction" method="input"> 
      <result name="input" type="tiles">/register.tiles</result> 
     </action> 
    </package> 
</struts> 

답변

7

설정 struts.mapper.alwaysSelectFullNamespace 상수 true 행 :

<constant name="struts.mapper.alwaysSelectFullNamespace" value="true" /> 

된 URL의 임의의 변수 (예를 들면, 와일드 카드, 정규식 패턴 매칭 S2의 지원을 활용하는 경우는 의도하지 않은 결과를 가질 수있다).

+0

감사합니다. Dave! 재미있는 점은 스트럿츠 설정 문서를 약간 훑어 보았고 완전히 놓쳤다는 것입니다. 상관없이 많은 감사! –

+1

@ A.Cusano 약간 묻혀있다. –

+0

@DaveNewton : struts2의 주된 문제는 숨겨진 문서입니다 :) –