-
spring mvc 为什么不能访问0
我写了一个类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参数了,有什么方法避免吗?2013年5月10日 21:52
2个答案 按时间排序 按投票排序
-
采纳的答案
因为我在地址栏输入的user/userlogin 它当作了show方法的userName参数了,有什么方法避免吗? 地址栏直接输入是get请求
很明显
@RequestMapping(value="/userlogin" , method=RequestMethod.POST)
你的/userlogin只处理POST请求
可以把
method=RequestMethod.POST --->method={RequestMethod.GET, RequestMethod.POST}
这样可以get/post了2013年5月13日 08:53
-
@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/..."
2013年5月11日 09:34
相关推荐
Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
以上这些库构成了 Spring MVC 开发的基础环境,开发者可以利用它们来创建控制器、定义模型、配置视图解析器,以及实现事务管理、数据访问等复杂功能。通过 Spring MVC,开发者能够以声明式的方式组织应用程序,提高...
七、Spring MVC如何访问到静态的文件:描述了如何配置Spring MVC来处理静态资源,如图片、JavaScript和CSS文件等。 八、Spring MVC请求如何映射到具体的Action中的方法:说明了如何配置映射器(HandlerMapping)将...
总的来说,Spring MVC为开发高效、灵活和可扩展的Web应用程序提供了强大的工具集。通过深入理解并熟练运用这些核心概念和机制,开发者可以构建出高质量的Java Web应用。在提供的文档"spring MVC .docx"中,应该包含...
这个简单的示例为初学者提供了一个了解Spring MVC和Spring Security交互的基础平台,有助于理解这两个框架在实际项目中的作用和集成方式。通过深入研究和实践,可以进一步提升Web应用的安全性和可维护性。
- 访问`http://localhost:8080/your-app-context-path/hello`,你应该能看到"Hello, Spring MVC!"的消息。 6. **注解驱动开发** Spring 4引入了更多的注解,如`@RestController`(用于RESTful服务)、`@...
将项目部署到Tomcat或其他Servlet容器,访问`http://localhost:8080/SummerWeb/hello`,应能看到"Hello, Spring MVC!"的欢迎消息。 通过这个简单的Demo,我们可以了解到Spring MVC的基本工作流程:从HTTP请求到...
Spring MVC 是一个强大的Java Web应用程序开发框架,是Spring框架的一部分,专注于处理Web请求和返回响应。它提供了模型-视图-控制器(MVC)架构,帮助开发者构建灵活、可维护的Web应用。在这个"spring mvc 整合包...
【标题】"maven与spring MVC"涉及到的是Java Web开发中的两个关键组件——Maven和Spring MVC,它们在构建和管理复杂项目时起着至关重要的作用。Maven是一个项目管理和综合工具,它通过提供一个标准化的构建过程和...
2. **Model-View-Controller(MVC)架构**: Spring MVC遵循MVC设计模式,将应用程序逻辑分解为模型(Model)、视图(View)和控制器(Controller)三个部分。模型处理业务逻辑,控制器处理用户交互,视图负责展示...
在现代Java Web开发中,Spring MVC框架是不可或缺的一部分,它为构建可扩展、模块化的Web应用程序提供了强大的支持。IntelliJ IDEA作为一款高效的Java集成开发环境,使得开发Spring MVC项目变得更加便捷。本文将详细...
首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用程序接收到 http://localhost:8080/hello.do(事实上请求路径是 /hello.do) 的请求后, Spring 将这个请求交给一个名为 helloController ...
总之,这个实例覆盖了Spring MVC作为Web应用框架、iBatis作为数据访问层以及Maven作为构建工具的关键知识,提供了一个清晰、实用的参考案例。通过学习和实践这个实例,开发者可以提升自己的Java Web开发技能。
Spring MVC 4.2.4.RELEASE虽然不是一个正式版本,但其包含的特性仍然非常实用,可以为开发工作提供强大支持。 **1. 模型-视图-控制器架构** Spring MVC的核心是MVC模式,它将应用程序分为三个主要部分:模型、视图...
在IT行业中,Spring MVC 和 MyBatis 是两个非常重要的框架,它们分别负责Web应用程序的控制器层和数据访问层。Spring MVC 提供了模型-视图-控制器架构模式的实现,而MyBatis则是一个轻量级的SQL映射框架,用于简化...
在本文中,我们将深入探讨如何将Spring MVC、Spring和Mybatis这三大流行框架整合到一个Java Web项目中,创建一个高效、灵活的数据访问层。这个整合的Demo项目名为"ssm-demo",它是一个基于Maven构建的项目,这意味着...