0 0

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
  • 大小: 223.9 KB

2个答案 按时间排序 按投票排序

0 0

采纳的答案

因为我在地址栏输入的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
0 0

@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 jar包

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...

    spring mvc jar包

    以上这些库构成了 Spring MVC 开发的基础环境,开发者可以利用它们来创建控制器、定义模型、配置视图解析器,以及实现事务管理、数据访问等复杂功能。通过 Spring MVC,开发者能够以声明式的方式组织应用程序,提高...

    Spring MVC 教程快速入门 深入分析

    七、Spring MVC如何访问到静态的文件:描述了如何配置Spring MVC来处理静态资源,如图片、JavaScript和CSS文件等。 八、Spring MVC请求如何映射到具体的Action中的方法:说明了如何配置映射器(HandlerMapping)将...

    spring MVC .docx

    总的来说,Spring MVC为开发高效、灵活和可扩展的Web应用程序提供了强大的工具集。通过深入理解并熟练运用这些核心概念和机制,开发者可以构建出高质量的Java Web应用。在提供的文档"spring MVC .docx"中,应该包含...

    基本的spring mvc + spring security实现的登录(无数据库)

    这个简单的示例为初学者提供了一个了解Spring MVC和Spring Security交互的基础平台,有助于理解这两个框架在实际项目中的作用和集成方式。通过深入研究和实践,可以进一步提升Web应用的安全性和可维护性。

    spring MVC简单示例

    - 访问`http://localhost:8080/your-app-context-path/hello`,你应该能看到"Hello, Spring MVC!"的消息。 6. **注解驱动开发** Spring 4引入了更多的注解,如`@RestController`(用于RESTful服务)、`@...

    Spring MVC 简单Demo

    将项目部署到Tomcat或其他Servlet容器,访问`http://localhost:8080/SummerWeb/hello`,应能看到"Hello, Spring MVC!"的欢迎消息。 通过这个简单的Demo,我们可以了解到Spring MVC的基本工作流程:从HTTP请求到...

    spring mvc 整合包

    Spring MVC 是一个强大的Java Web应用程序开发框架,是Spring框架的一部分,专注于处理Web请求和返回响应。它提供了模型-视图-控制器(MVC)架构,帮助开发者构建灵活、可维护的Web应用。在这个"spring mvc 整合包...

    maven与spring MVC

    【标题】"maven与spring MVC"涉及到的是Java Web开发中的两个关键组件——Maven和Spring MVC,它们在构建和管理复杂项目时起着至关重要的作用。Maven是一个项目管理和综合工具,它通过提供一个标准化的构建过程和...

    Spring mvc5.0.3 所有jar包

    2. **Model-View-Controller(MVC)架构**: Spring MVC遵循MVC设计模式,将应用程序逻辑分解为模型(Model)、视图(View)和控制器(Controller)三个部分。模型处理业务逻辑,控制器处理用户交互,视图负责展示...

    Spring MVC IDEA版本DEMO

    在现代Java Web开发中,Spring MVC框架是不可或缺的一部分,它为构建可扩展、模块化的Web应用程序提供了强大的支持。IntelliJ IDEA作为一款高效的Java集成开发环境,使得开发Spring MVC项目变得更加便捷。本文将详细...

    Spring MVC 入门实例

    首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用程序接收到 http://localhost:8080/hello.do(事实上请求路径是 /hello.do) 的请求后, Spring 将这个请求交给一个名为 helloController ...

    spring mvc+ibats实例

    总之,这个实例覆盖了Spring MVC作为Web应用框架、iBatis作为数据访问层以及Maven作为构建工具的关键知识,提供了一个清晰、实用的参考案例。通过学习和实践这个实例,开发者可以提升自己的Java Web开发技能。

    Spring MVC 4.2.4.RELEASE 中文文档

    Spring MVC 4.2.4.RELEASE虽然不是一个正式版本,但其包含的特性仍然非常实用,可以为开发工作提供强大支持。 **1. 模型-视图-控制器架构** Spring MVC的核心是MVC模式,它将应用程序分为三个主要部分:模型、视图...

    Spring mvc整合mybatis例子

    在IT行业中,Spring MVC 和 MyBatis 是两个非常重要的框架,它们分别负责Web应用程序的控制器层和数据访问层。Spring MVC 提供了模型-视图-控制器架构模式的实现,而MyBatis则是一个轻量级的SQL映射框架,用于简化...

    Spring mvc + Spring + Mybatis 整合demo

    在本文中,我们将深入探讨如何将Spring MVC、Spring和Mybatis这三大流行框架整合到一个Java Web项目中,创建一个高效、灵活的数据访问层。这个整合的Demo项目名为"ssm-demo",它是一个基于Maven构建的项目,这意味着...

Global site tag (gtag.js) - Google Analytics