spring mvc 为什么不能访问

问题描述

我写了一个类UserController:import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.validation.BindingResult;import org.springframework.validation.annotation.Validated;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import com.itech.model.User;@Controller@RequestMapping("/user")public class UserController {private Map<String, User> users=new HashMap<String,User>();public UserController() {users.put("huhuawen1", new User("huhuawen1","29", "123", "123@163.com"));users.put("huhuawen2", new User("huhuawen2","28", "456", "456@163.com"));users.put("huhuawen3", new User("huhuawen3","20", "789", "789@163.com"));}@RequestMapping(value="/users",method=RequestMethod.GET)public String list(Model model) {model.addAttribute("users",users);return"user/list";}//链接到add页面时是GET请求@RequestMapping(value="/add",method=RequestMethod.GET)public String add(@ModelAttribute("user") User user) {return"user/add";}//具体添加用户时是post请求@RequestMapping(value="/add",method=RequestMethod.POST)public String add(@Validated User user,BindingResult br) {//一定要紧跟Validated之后写验证结果if(br.hasErrors()){//如果有错,就跳转到add视图return "user/add";}users.put(user.getUserName(), user);System.out.println("123");return"redirect:/user/users";}@RequestMapping(value="/{userName}/update" , method=RequestMethod.GET)public String update(@PathVariable String userName,Model model){model.addAttribute(users.get(userName));return "user/update";}@RequestMapping(value="/{userName}/update",method=RequestMethod.POST)public String update(@Validated User user,@PathVariable String userName,BindingResult br) {//一定要紧跟Validated之后写验证结果users.put(user.getUserName(), user);System.out.println("123");return"redirect:/user/users";}@RequestMapping(value="/{userName}/delete" , method=RequestMethod.GET)public String delete(@PathVariable String userName,Model model){users.remove(userName);return"redirect:/user/users";}@RequestMapping(value="/userlogin" , method=RequestMethod.POST)public String login ( String userName,String password,HttpSession session){//session.setAttribute('session', arg1)return"redirect:/user/users";}@RequestMapping(value="/{userName}" , method=RequestMethod.GET)public String show(@PathVariable String userName,Model model){System.out.println("userName="+userName);model.addAttribute(users.get(userName));return "user/show";}}login.jsp:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Insert title here</title></head><body><form action="user/userlogin" method="post">userName<input type="text" name="userName"><br>password<input type="text" name="password"><br><input type="submit" name="提交"></form></body></html> 现在这里面的show方法和login 有一点冲突,因为我在地址栏输入的user/userlogin 它当作了show方法的userName参数了,有什么方法避免吗?

解决方案

因为我在地址栏输入的user/userlogin 它当作了show方法的userName参数了,有什么方法避免吗? 地址栏直接输入是get请求很明显 @RequestMapping(value="/userlogin" , method=RequestMethod.POST) 你的/userlogin只处理POST请求可以把method=RequestMethod.POST --->method={RequestMethod.GET, RequestMethod.POST}这样可以get/post了
解决方案二:
@RequestMapping(value="/userlogin" , method=RequestMethod.POST) public String login你是用POST方式提交的登陆而 @RequestMapping(value="/{userName}" , method=RequestMethod.GET) public String show你是用GET方式提交的当你在地址栏输入user/userlogin 的请求方式为GET 所以就到了show方法里避免的方式是 @RequestMapping(value="/方法名/参数1/参数2/..."

时间: 2024-12-22 00:44:17

spring mvc 为什么不能访问的相关文章

spring mvc注解不能访问到controller

问题描述 spring mvc注解不能访问到controller web.xml配置 <servlet> <servlet-name>annomvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLoca

spring mvc实例无法访问,大家看看是哪儿有问题呢

问题描述 我前两天发帖了这个问题,最终没有解决问题,请大家再帮忙看看以前的链接地址为:http://www.iteye.com/problems/93576#solutions我现在使用 http://localhost:8080/springmvc/hello.html访问,还是提示找不到资源.附近附上代码 问题补充:添加了这两个jar包,还是不正确啊访问还是提示找不到资源 解决方案 直接访问 http://localhost:8080/springmvc/hello.html 即可找不到资源

spring mvc-maven spring MVC注解controller页面访问不到。。(新手)

问题描述 maven spring MVC注解controller页面访问不到..(新手) dispatcher-servlet.xml -------------------------------------------------------------------------- <!-- 添加注解驱动 --> <mvc:annotation-driven /> <!-- 默认扫描的包路径 --> <context:component-scan base-p

spring 4.2.6 mvc 静态资源访问问题

问题描述 spring 4.2.6 mvc 静态资源访问问题 ![新进公司, 尝试自己重新拾起搭一个springmvc框架,可是一个静态资源访问问 题拦住了我两天,求大神帮忙: 图片说明](http://img.ask.csdn.net/upload/201605/20/1463737807_800158.png) 这是使用jar包 web.xml 配置: springmvc <context-param> <param-name>contextConfigLocation<

急 SPRING MVC 项目访问不到路径

问题描述 急 SPRING MVC 项目访问不到路径 SPRING MVC 项目 在tomcat运行正常weblogic 访问后显示找不到路径 下面是异常信息WARN org.springframework.web.servlet.DispatcherServlet:noHandlerFound:1077 - No mapping found for HTTP request with URI [/kbyxbj_mvc/wx/login/webChatLogin.action] in Dispa

spring访问不了控制层-Spring MVC访问不了Controller

问题描述 Spring MVC访问不了Controller web.xml配置 <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 指定Spring Bean的配置文件所在目录.默认配置在WEB-INF目录下

浏览器-为什么访问不了spring mvc的项目工程,连静态jsp页面也跳不了。

问题描述 为什么访问不了spring mvc的项目工程,连静态jsp页面也跳不了. 刚部署的项目工程,以前别人已经做好了,部署后tomcat不报错,但浏览器就是找不到路径,一直报404,这是为什么? 解决方案 你的问题太抽象了,想帮你都力不从心的,建议你 1.看tomcat是否启动 2.如果启动访问一下项目的index.jsp---一般过滤器都不会拦截这个页面的 3.如何能访问的话,就应该是你配置文件的问题了 如果还有文件,建议你把tomcat的日志粘出来帮你看看, 解决方案二: 哪位大神帮帮我

shiro被拦截访问-spring mvc+shiro 被拦截访问

问题描述 spring mvc+shiro 被拦截访问 目前除了登录页面不受拦截,新加的注册页面也被拦截了(不登录就无法访问),求教,该怎么办 /view/static/** = anon /jcaptcha* = anon /eidpws/** = eidpSession,syncOnlineSession /upload/** = anon /apk/** = anon /images/** = anon /importModel/** = anon / = anon /login = jC

spring mvc 用modelmap传递参数,前台页面如果有frameset 那么frame的页面访问不到参数

问题描述 spring mvc 用modelmap传递参数,前台页面如果有frameset 那么frame的页面访问不到参数在controller中有如下代码: modelMap.addAttribute("user", user); return "main";在main.jsp中有frameset,frame中的页面用${user} 取不到值,有没有什么办法能解决:试过用@SessionAttributes("user")将值放在sessio