所有
我在Spring MVC中有一个控制器动作。此操作正在设置属性。我希望将此属性设置为表单中的隐藏值。
这是我的控制器动作:
@RequestMapping(method = RequestMethod.GET)
public String showLoginForm(HttpServletRequest request, ModelMap model)
{
//URL to redirect the User to after Authentication
String gotoUrl = request.getParameter("goto");
LoginForm loginForm = new LoginForm();
model.addAttribute("gotoUrl", gotoUrl);
model.put("loginForm", loginForm);
return "loginform";
}
在JSP表单中,我想要这样的东西:
<input type="hidden" name="goto" id="goto" value="${gotoUrl}" />
但是,根据JSP,这不是有效的语法。你能建议有效的语法吗?
谢谢,
这是堆栈跟踪错误:
javax.el.ELException: The identifier [gotoUrl] is not a valid Java identifier as required by section 1.19 of the EL specification (Identifier ::= Java language identifier). This check can be disabled by setting the system property org.apache.el.parser.SKIP_IDENTIFIER_CHECK to true.
org.apache.el.parser.AstIdentifier.setImage(AstIdentifier.java:132)
org.apache.el.parser.ELParser.Identifier(ELParser.java:1215)
org.apache.el.parser.ELParser.NonLiteral(ELParser.java:1191)
org.apache.el.parser.ELParser.ValuePrefix(ELParser.java:1017)
org.apache.el.parser.ELParser.Value(ELParser.java:966)
org.apache.el.parser.ELParser.Unary(ELParser.java:948)
org.apache.el.parser.ELParser.Multiplication(ELParser.java:712)
org.apache.el.parser.ELParser.Math(ELParser.java:632)
org.apache.el.parser.ELParser.Compare(ELParser.java:444)
org.apache.el.parser.ELParser.Equality(ELParser.java:338)
org.apache.el.parser.ELParser.And(ELParser.java:282)
org.apache.el.parser.ELParser.Or(ELParser.java:226)
org.apache.el.parser.ELParser.Choice(ELParser.java:183)
org.apache.el.parser.ELParser.Expression(ELParser.java:175)
org.apache.el.parser.ELParser.DynamicExpression(ELParser.java:147)
org.apache.el.parser.ELParser.CompositeExpression(ELParser.java:44)
org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:116)
org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:172)
org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:217)
org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:67)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:984)
org.apache.jsp.WEB_002dINF.views.loginform_jsp._jspService(loginform_jsp.java:176)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
答案 0 :(得分:2)
您应该在
中更改'goto'名称和ID <input type="hidden" name="goto" id="goto" value="${gotoUrl}" />
然后匹配新名称,替换
中的'goto' request.getParameter("goto");
答案 1 :(得分:-1)
在body标签中设置如下:
<body onload="
$('#goto').val('
<c:if test="${gotoValueFromModel ne null}">
<c:out value="${gotoValueFromModel}"/>
</c:if>');
'
"
>
<form:form>
<form:hidden accesskey="goto" id="goto" path="goto" />
</form:form>