单击“提交”时,不会切换到另一个.jsp。春天mvc

时间:2018-02-11 20:26:38

标签: java spring jsp spring-mvc

我的控制器。当我打开浏览器时,启动页面start.jsp并创建模型User,它有一个字段(String name)和set,get方法。在start.jsp中有文本字段并提交" LOGIN"。

@Controller
public class HomeController {
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public ModelAndView start() {
        return new ModelAndView("start", "user", new User());
    }

    @RequestMapping(value = "/input", method = RequestMethod.POST)
    public ModelAndView input(@ModelAttribute("user") User user) {
        return new ModelAndView("input", "userName", user);
    }
}

我的开始页面。有文本字段并提交。

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
    <title>start</title>
</head>
<body>
<h1>TEST</h1>

<form:form method="post" commandName="user" action="input">
    <input type="text" name="name"><br>
    <input type="submit" value="LOGIN">
</form:form>
</body>
</html>

我的问题:我打开localhost:8080 / webapp并输入名称。目前正在创建模型用户的示例。我推&#34;登录&#34;然后我输入localhost:8080 / input,其中&#34; input.jsp&#34;是两页,输出&#34; Hello world,{name}&#34;。但如果我替换action =&#34;输入&#34;在start.jsp中使用action =&#34; webapp \ input&#34;一切都很好。但我认为这是个坏主意。

1 个答案:

答案 0 :(得分:0)

我认为您的代码没有任何问题。我尝试设置此示例并适用于以下配置。

webapp-servlet.xml:

<context:component-scan base-package = "com.test" />

   <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name = "prefix" value = "/WEB-INF/jsp/" />
      <property name = "suffix" value = ".jsp" />
   </bean>

JSP位置:

\WEB-INF\jsp\input.jsp
\WEB-INF\jsp\start.jsp

示例input.jsp:

<%@ page import="com.test.*" %>
<html>
<head>
    <title>start</title>
</head>
<body>
<h1>TEST</h1>
<%
    User user   = (User)request.getAttribute("userName");
%>
 Hello - <%=user.getName() %>
</body>
</html>

start.jspHomeController

无需更改