我有一个view.jsp,我在这个JSP中的JavaScript函数中声明了一个变量(parentUrl)。我想将此变量传递给我的Java类(MyAction)。这是我的代码
function editAddress(){
var parentUrl=document.referrer;
request.setAttribute("url", parentUrl);
document.forms[0].action = "path of the Myaction class";
document.forms[0].submit();
}
单击view.jsp中的SAVE按钮,调用上面的函数将我的请求转发给MyAction类,然后MyAction类将请求转发到另一个jsp页面。我想传递parentUrl变量以在MyAction类中传递,因此我可以使用此变量的值来编写一些逻辑。这是从请求中检索变量值的myAction类代码:
String parentURL = (String)request.getParameter("url");
基本上我想从请求来自的地方获取父页面的URL。这就是我使用document.referrer函数的原因。
我的问题是当我在我的函数editAddress()中添加这两行时,我的SAVE按钮停止工作并且它没有导航到另一个页面。我不知道为什么会这样。
var parentUrl=document.referrer;
request.setAttribute("url", parentUrl);
请让我知道从JavaScript中将此parentUrl变量传递给\ MyAction类的任何其他更好的方法。谢谢!
答案 0 :(得分:2)
request.setAttribute()
不是javascript方法,因此您无法以这种方式使用它。相反,在表单中声明一个隐藏字段并将其值设置为submit。
<form>
...
<input type="hidden" name="parentURL">
...
</form>
function editAddress(){
var parentUrl=document.referrer;
document.forms[0].parentURL.value=parentUrl;
document.forms[0].action = "path of the Myaction class";
document.forms[0].submit();
}
在您的操作类中声明parentURL
(getter / setter)以访问其值