在我的一个JSP中,我让用户输入一些关于他们自己的细节。当他们点击提交时,我想要重定向到的页面,记住变量然后将其打印出来。
e.g。
(register.jsp) Username: Barney
(welcome.jsp) Welcome Barney
(register.jsp) Username: Vernon
(welcome.jsp) Hello Vernon
当前代码:
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register(ModelMap map, HttpSession session,
@RequestParam(value="givenUser") String givenUser) {
session.setAttribute("ans", givenUser);
map.addAttribute("displayAnswer", givenUser);
map.put("givenUser", givenUser);
return "register";
}
}
欢迎请求映射:
@RequestMapping(value = "/welcome", method = RequestMethod.GET)
public String welcome() {
return "welcome";
}
然后在welcome.jsp中我有:Hello $ {givenAnswer}
register.jsp,一旦点击里面的链接,就转到welcome.jsp
这是register.jsp
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ page isELIgnored="false" %>
<html>
<head>
<title>SPRING ####### WEB</title>
</head>
<body>
<h2>SUCCESSFUL REDIRECTION!!!</h2>
<p>Register</p>
<form action="/HelloSpring/welcome" method="post">
Username: <input type="text" name="givenUser" >
Firstname: <input type="text" name="givenPassword">
Surname: <input type="text" name="givenSurname" >
Password: <input type="password" name="givenPassword">
<input type="submit" value="Submit">
</form>
</body>
</html>
的welcome.jsp
<%@taglib uri="http://www.springframework.org/tags/form" prefix="spring"%>
<%@ page isELIgnored="false" %>
<html>
<head>
<title>SPRING ####### WEB</title>
</head>
<body>
<h2>Spring Page Redirection</h2>
<p>Welcome ${givenUser}, your password is ${givenPassword}</p>
</body>
</html>
所以我的问题是我没有包含的内容,因为当用户提交详细信息时,它当前只会触发空白
答案 0 :(得分:1)
您可以将userinput
属性发布到Controller,然后将值发送回ModelMap。
示例:
@RequestMapping("/hello")
public String hello1(ModelMap map,@RequestParam String userInput){
/*your code goes here*/
map.put("userInput",userInput);
return "jsp1"; //first jsp name
}
并使用表达式语言在jsp中使用它。
您好{userInput}!!
答案 1 :(得分:0)
<input>
标记中的名称是表单提交时用作请求参数名称的内容。
您至少应该更改控制器代码以使用正确的参数名称:
@RequestMapping(value = "/answer", method = RequestMethod.GET)
public String answer(ModelMap map, HttpSession session,
@RequestParam("howareyou") String givenAnswer) {
session.setAttribute("ans", givenAnswer);
map.addAttribute("displayAnswer", givenAnswer);
map.put("givenAnswer", givenAnswer);
return "answer";
}
}
我还删除了未使用的参数req
,因为Spring直接为您提供了HttpSession
。在模型中两次添加相同的对象通常没用。但我认为你不确定什么是正确的并尝试过两者 - 其中任何一个都是正确的并且足够了: - )
答案 2 :(得分:0)
SUCCESS!显然它需要$ {param.elc}。为什么这不是任何教程,怎么没人知道呢?我仍然有点怀疑,但它按要求做了。 感谢所有帮助过的人!