2015-11-25 2 views
2

Я использую Spring MVC для создания проекта. У меня проблема с использованием url-шаблона для направления моей страницы jsp. Каждый раз, когда я создаю новую страницу jsp, мне нужно жестко указать имя jsp в web.xml.Шаблон URL сервлета для соответствия всем URL

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" version="3.0"> 
    <display-name>ShoppingCart</display-name> 
    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

<!-- Once DispatcherServlet is initialized will look for file name [servlet-name]-servlet.xml, dispatcher-servlet.xml --> 
<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<!-- all request matches with <url-pattern> will be handled by DispatcherServlet instance named dispatcher --> 
<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/register.jsp</url-pattern> 
    <url-pattern>/login.jsp</url-pattern>   
    <url-pattern>/update.jsp</url-pattern>   
</servlet-mapping> 

</web-app> 

Изображение ниже моя структура папок

folder structure

ответ

2

Укажите ваш сервлет общий url-mapping на web.xml, а затем обработать его суб URLS на контроллерах

<servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

Настройка InternalResourceViewResolver боба на ваш dispatcher-context.xml

<beans:bean 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <beans:property name="prefix" value="/WEB-INF/views/" /> 
    <beans:property name="suffix" value=".jsp" /> 
</beans:bean> 

на контроллер:

@Controller 
@RequestMapping("/") 
public class ControllerRegister{ 

    @RequestMapping("register") 
    public String goToRegisterPage(){ 
     return "register"; 
    } 

} 

это будет служить register.jsp под папкой WEB-INF/views/ wehn вызова URL:

http://yourHost:port/yourApp/register 
+0

Привет Рафик Beldi, спасибо за ваша помощь. Теперь мои страницы работают. Благодаря! – Khee

+0

@khee вы приветствуете :) –

Смежные вопросы