当我启动以下网址时
http://localhost:8090/QuickStartConsulting/quickstart/email?key=6226f7cbe59e99a90b5cef6f94f966fd
调用以下控制器方法
@RequestMapping(value = "/quickstart/email")
public String viewQuickStartEmailForm(@ModelAttribute(value = "quickbean")
QuickStartBean quickbean,BindingResult result,Model model) {
try {
//System.out.println(quickbean.getKey());
email=quickbean.getEmail();
model.addAttribute("email", email);
model.addAttribute("quickstartdatabean",new QuickStartBean() );
} catch (Exception e) {
e.printStackTrace();
}
return "quickstart/emaillogin";
}
这是我的emaillogin jsp页面
<form:form id="requestForm" method="GET" modelAttribute="quickbean" ACTION="${pageContext.request.contextPath}/quickstart/email" >
<form:hidden path="key" />
<table>
<tr>
<td><span><img src="<c:url value="/views/images/youremailid.png"/>"> </img></span></td>
<td>
<form:input type="text" style="width: 300px;" id="name" path="email" title="xyz@email.com"/>
</td></tr>
<tr>
<td>
<input type="image" id="invite_btn" src="<c:url value="/views/images/submit.png"/>" title="create invite" width="170" height="32"/>
</td>
</tr>
</table>
</form:form>
如何存储路径变量'key'的值并在我的控制器方法中使用它? emaillogin页面是第一页,不会从任何其他jsp页面重定向。
答案 0 :(得分:0)
使用@RequestParam
注释
public String viewQuickStartEmailForm(@RequestParam("key") String key, ....) {...}
顺便说一下:@See @RequestParam vs @PathVariable了解请求参数和路径变量之间的详细信息和差异
答案 1 :(得分:0)
首先按如下方式定义pathVariables:
public String viewQuickStartEmailForm(@PathVariable Map pathVariables,..)
您可以使用以下代码段获取值:
if (pathVariables != null) {
if (pathVariables.containsKey("fieldName") &&
!"undefined".equals(
(String)pathVariables.get("fieldName")) &&
!"null".equals(
(String)pathVariables.get("fieldName"))) {
params.setFieldName((String)pathVariables.get("fieldName"));
}
}
答案 2 :(得分:0)
@PathVariable和@RequestParam之间存在差异。例如:
@RequestParam用于访问查询参数的值。
网址:http://localhost:8081/Test/card?cardId=1012111
@RequestMapping( “/卡”)
public String getCard(@RequestParam(value =“cardId”,required = true)String cardId){
System.out.println("print the value of the cardId : "+cardId)
....... }
其中@PathVariable用于访问URI模板中的值。
网址:http://localhost:8081/Test/card/1012111
@RequestMapping( “/卡/ {CardId中}”)
public String updateCard(@PathVariable(value =“cardId”)String cardId){
System.out.println("print the value of the cardId : "+cardId)
....... }
因此,您可以更正您的代码并使用上述方法中的任何一种,而不是混合使用它们。