<servlet-mapping>
<url-pattern>/*</url-pattern>
aaa控制器
@Controller
@RequestMapping("/aaa")
bbb控制器
@Controller
@RequestMapping("/bbb")
但是现在我需要在我的项目中添加一些jsp页面,因为web.xml中的“/ *”找不到我的jsp页面。所以我改变了servlet-mapping,如下所示;
web.xml中的
<servlet-mapping>
<url-pattern>/aaa/*</url-pattern>
<url-pattern>/bbb/*</url-pattern>
aaa控制器
@Controller
@RequestMapping("/")
bbb控制器
@Controller
@RequestMapping("/")
但我不想使用这种方法,因为我可以在/ bbb / xxx这样的控制器中访问xxx servlet。
那么有没有其他替代解决方案,例如我可以在控制器或其他任何设置中设置完整路径吗?
提前感谢...
答案 0 :(得分: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>
在example-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
时,第一个控制器将返回/aaa.jsp作为您的模型和View第二个控制器将返回/bbb.jsp作为您的模型,并在您点击/bbb / bbb.html时查看
希望它有所帮助。