2013-02-21 3 views
3

Я новый java распорки рамки. Но я хочу задать вопрос.Каков тип пути разности в java struts.xml?

struts.xml В пути является .do как "/AddReq.do" OR путь назвать только как "AddReq"

В чем разница между "/AddReq.do" и "AddReq"?

Например

<action path="/AddReqPage" 
type="...actions.AddReqPageAction"> 
     <forward name="success" path="AddReq" /> 
     <forward name="failure" path="/bos.jsp" /> 
</action> 
<action path="/AddReq" 
type="...actions.AddReqAction" 
name="AddReqForm" validate="true" 
scope="request"> 
     <forward name="success" path="/AddReqDetail.do" /> 
     <forward name="hata" path="AddReq" /> 
     <forward name="failure" path="/bos.jsp" /> 
</action> 

ответ

4

нет большой разницы. Оба должны работать - если вы правильно настроили ActionServlet в своем web.xml.

<servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping> 

Обычно распорки использует * .Не шаблон для distingush его сервлет из других сервлетов и JSP-страницы

1

«.do» является продолжением действия. Вы настраиваете его при отображении сервлета. Когда struts анализирует URL-адрес, он ищет такое расширение, чтобы отличать статические вызовы от действия struts. Затем находит сопоставление, соответствующее этому URL-адресу, но без «.do». Тем не менее, вы все равно укажете «.do» в форвардах, если ваше приложение настроено на использование этого расширения. В настоящее время это расширение имеет меньший смысл, чем раньше. Техника URL rewrite позволяет полностью игнорировать это расширение. С

<servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>/c/*</url-pattern> 
</servlet-mapping> 

и ссылка выше, вы можете полностью отклонить его.