本人最开始将前缀部分配置成空,结果不是报404,就是必须要对前端页面的路径进行加工。总体来说个人认为将prefix配置成空是不对的方式
1.prefix配置成空的时候:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value></value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> 当前缀配置成空,通过以下Controller访问webapp根目录下的页面的话就需要将userinfo页面放在user文件夹中才可以访问,不然会报404错误,视图解析的时候会将类上边的
RequestMapping("/user")中的user也作为路径的一部分2.prefix配置成'/',也就是根目录@Controller @RequestMapping("/user") public class UserAction { @Resource private UserDao dao; @RequestMapping(value ="/showUser", method = RequestMethod.POST) public String toIndex(HttpServletRequest request,Model model) throws UnsupportedEncodingException{ String userName=request.getParameter("userName"); new String(userName.getBytes("utf-8"),"ISO-8859-1"); LoginForm user=dao.getByUserName(userName); model.addAttribute("user", user); return "userinfo"; } }
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean>
这样的情况下通过上述Controller才能正常访问页面,避免404错误