2011-08-17 26 views
0

我開發了一個彈簧應用程序。所有請求都被指派給控制器(我在我的應用程序2個控制器)這樣的web.xml是像下面在控制器中設置完整路徑

在web.xml

<servlet-mapping> 
    <url-pattern>/*</url-pattern> 

AAA控制器

@Controller 
@RequestMapping("/aaa") 

BBB控制器

@Controller 
@RequestMapping("/bbb") 

但現在我需要在我的項目中添加一些jsp頁面,因爲web.xml中的「/ *」my jsp pa沒有找到ges。所以我改變了下面的servlet映射;

在web.xml

<servlet-mapping> 
    <url-pattern>/aaa/*</url-pattern> 
    <url-pattern>/bbb/*</url-pattern> 

AAA控制器

@Controller 
@RequestMapping("/") 

BBB控制器

@Controller 
@RequestMapping("/") 

,但我不希望使用這種方法,因爲我可以在AAA訪問XXX的servlet控制器喜歡/ bbb/xxx。

所以有沒有其他解決方案,例如我可以在控制器或任何設置完整路徑?

在此先感謝...

回答

1

你需要通過服務器通過JSP爲好。 可以映射爲HTML擴展

<servlet> 
    <servlet-name>example</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>example</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

在示例-servlet.xml中只需添加下面的JSP解析器

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
     <property name="prefix" value="/jsp/"/> 
     <property name="suffix" value=".jsp"/> 
    </bean> 

然後用ModelAndView對象在控制器:

@Controller 
@RequestMapping(value="/aaa") 
public class aaaController{ 

    @RequestMapping(value="/aaa.html", method=RequestMethod.GET) 
    public ModelAndView index(){ 
     ModelAndView mv = new ModelAndView("aaa"); 
     return mv; 
    } 
} 


@Controller 
@RequestMapping(value="/bbb") 
public class aaaController{ 

    @RequestMapping(value="/bbb.html", method=RequestMethod.GET) 
    public ModelAndView index(){ 
     ModelAndView mv = new ModelAndView("bbb"); 
     return mv; 
    } 
} 

在這種情況下,當你打/aaa/aaa.html

和第二控制器將返回/bbb.jsp如您在模型和視圖,當你打第一個控制器將返回/aaa.jsp爲您模型andView /bbb/bbb.html

希望它有幫助。

+0

@Controller @RequestMapping( 「/ AAA」) \t @RequestMapping(方法= RequestMethod.GET,值= 「/登錄」) \t公共字符串getLogin(HttpServletRequest的請求,響應HttpServletResponse的,型號model){ \t \t \t \t \t模型。addAttribute(「username」,「test」); \t \t \t return「login」; \t \t} \t} 錯誤--- [PageNotFound]沒有找到映射與HTTP請求的URI [/TestServer/WEB-INF/views/login.jsp] 我想我誤會了,我問題是,沒有改變我的應用程序中添加一些jsp頁面的任何網址。 bwt我無法更改uri,因爲它已被使用。 uri必須是.../TestServer/aaa/login – ysnky