我的控制器。当我打开浏览器时,启动页面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;一切都很好。但我认为这是个坏主意。
答案 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.jsp
和HomeController