Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在请求对象中调用setParameter?_Java_Jsp_Jstl - Fatal编程技术网

Java 如何在请求对象中调用setParameter?

Java 如何在请求对象中调用setParameter?,java,jsp,jstl,Java,Jsp,Jstl,这可能是由于我对JSP和JSTL的误解和不完整信息造成的。我有一个网页,其中有输入元素,例如 <input name="elementID" value="${param.elementID}"/> 当我试图保存表单时,我会检查elementID和其他元素是否符合某些约束“numeric,小于XXX”。如果没有,我会显示一条错误消息。所有参数均已保存,用户无需在修复错误后再次键入 保存后,当我重定向到要编辑的对象的同一页面时,我正在寻找一种方法来设置参数,如request.se

这可能是由于我对JSP和JSTL的误解和不完整信息造成的。我有一个网页,其中有输入元素,例如

<input name="elementID" value="${param.elementID}"/>

当我试图保存表单时,我会检查elementID和其他元素是否符合某些约束“numeric,小于XXX”。如果没有,我会显示一条错误消息。所有参数均已保存,用户无需在修复错误后再次键入


保存后,当我重定向到要编辑的对象的同一页面时,我正在寻找一种方法来设置参数,如
request.setParameter(“elementID”,…)
有什么方法可以这样做吗?但是,我唯一能找到的是
request.setAttribute

在servlet处理表单后(即,将用户输入保存在数据库中),让servlet将请求转发(而不是重定向,因为这样会丢失请求参数)到包含表单的同一jsp。因此不需要设置参数,因为servlet只是传回相同的请求对象

包含表单的jsp应具有类似以下内容的输入:

<form>
...
<input type="text" value="${elementid}"/>
...
</form>

...
...
语法${varname}是EL。因此,如果elementid已经有了一个值,则表示textfield将包含该值。或者,如果您没有使用EL和/或JSTL,您可以使用Scriptlet(但这是非常不明智的,EL和/或JSTL应该是这样):


...
...

HTTP响应不支持传递参数。
JSP/Servelets允许您为此目的使用
request.setAttribute
session.setAttribute
。在处理重定向到的页面时,这两种方法都是可用的,因此基本上,您是正确的


另外,根据您的描述,您可能希望检查客户端验证:在使用客户端脚本(javascript)验证表单之前不要提交表单

我必须将
包含到我的jsp中,以允许
${elementid}
这样的代码工作

“我正在寻找一种方法来设置类似request.setParameter(“elementid”)的参数",..)“.为什么?你已经找到了正确的方法。有什么问题吗?注意,这里有一个XSS攻击漏洞。如果您不确定,请阅读我们的servlets wiki页面以获取具体示例:谢谢。我使用request.setAttribute。在我的中使用了requestScope.attribute,但是每当验证失败时,我都会从请求参数中恢复属性,以保留用户输入的值。验证后,我将数据推送到bean中。有更好的设计方法吗?至于XSS攻击漏洞,当前位置的boss试图强迫我使用Scriptlet和jdbc编写。我勉强获得了使用jstl的许可。有比这个XSS攻击孔更大的孔。
<form>
...
<input type="text" value="<%= request.getParameter("elementid") %>"/>
...
</form>