Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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 如何使用request.setAttribute()通过单击链接来设置和传递值_Java_Jsp_Servlets - Fatal编程技术网

Java 如何使用request.setAttribute()通过单击链接来设置和传递值

Java 如何使用request.setAttribute()通过单击链接来设置和传递值,java,jsp,servlets,Java,Jsp,Servlets,每当用户单击链接时,我想使用request.setAttribute()和request.getAttribute()将rowNo的值从一个jsp文件传递到另一个jsp文件(以在该行上显示图像) 但当我尝试在第二个jsp页面上使用request.getAttribute()时,会出现以下异常: org.apache.jasper.jaspereException:java.lang.NumberFormatException:null 在Index.jsp页面上,我有: <%! int

每当用户单击链接时,我想使用request.setAttribute()和request.getAttribute()将rowNo的值从一个jsp文件传递到另一个jsp文件(以在该行上显示图像)

但当我尝试在第二个jsp页面上使用request.getAttribute()时,会出现以下异常:
org.apache.jasper.jaspereException:java.lang.NumberFormatException:null

在Index.jsp页面上,我有:

<%!
 int temp = 1;

 %>

<a href="single.jsp" onclick="<%= request.setAttribute("val", temp) %>" > 
<i class="glyphicon glyphicon-menu-right icon"></i> </a>

在single.jsp页面上:

<%

dbConnect con = new dbConnect(); 
ResultSet r = con.getConnection().executeQuery("select * from tblpic "); 

String tp = (String) (request.getAttribute("val"));

int i = Integer.parseInt(tp);

r.absolute(i);

%>

<div class="thumb-image"> <img src="<%= r.getString(2) %>" data-imagezoom="true" class="img-responsive"> </div>

“data imagezoom=“true”class=“img响应”>
r、 绝对值(i)用于移动到表中的特定行

我在两个jsp页面上都添加了这个文件(我不知道是否有必要)


我正在研究NetBeans和struts框架。

我更喜欢
session.setAttribute()
而不是
request.setAttribute()
将值从一个jsp传递到另一个jsp

因此,您的代码将是:

<a href="single.jsp" onclick="<%= session.setAttribute("val", temp) %>" > 

我更喜欢
session.setAttribute()
而不是
request.setAttribute()
将值从一个jsp传递到另一个jsp

因此,您的代码将是:

<a href="single.jsp" onclick="<%= session.setAttribute("val", temp) %>" > 

您将服务器端代码和客户端代码混合在一起。“请求”是一个java对象,是servlet请求处理的一部分。它仅在服务器端工作,同时在servlet容器中呈现jsp

“onclick”是在浏览器端运行的java脚本单击触发器

一旦页面显示,“请求”无效。单击提交新请求。将创建新的请求对象

对于您来说,可以很容易地将参数参数传递给jsp,如下所示

在第一个jsp上:

在第二个jsp上:


您将服务器端代码和客户端代码混合在一起。“请求”是一个java对象,是servlet请求处理的一部分。只有在servlet容器中呈现jsp时,它才能在服务器端工作

“onclick”是在浏览器端运行的java脚本单击触发器

一旦页面显示,“请求”无效。单击提交新请求。将创建新的请求对象

对于您来说,可以很容易地将参数参数传递给jsp,如下所示

在第一个jsp上:

在第二个jsp上:


您正在请求范围中设置值。请求范围属性仅可在同一请求中访问。只要最终用户单击链接(由提供),就会生成一个新请求,因此您失去了在上一个请求中设置的属性

要解决这个问题,你可以这样做

1) Piyush Aghera解释的URL转发

2) 您可以将该值存储在会话中,如PVR所述


3) 如果您希望仅将值存储在请求属性中,那么我建议您使用RequestDispatcher转发请求。这将起作用,因为下一页上的请求将保持不变。

您正在请求范围中设置值。请求范围属性仅可在同一请求中访问。只要最终用户clic在链接(由提供)上,将生成一个新请求,因此您将失去在上一个请求中设置的属性

要解决这个问题,你可以这样做

1) Piyush Aghera解释的URL转发

2) 您可以将该值存储在会话中,如PVR所述


3) 如果您只希望将值存储在请求属性中,那么我建议您使用RequestDispatcher转发请求。这将起作用,因为您在下一页上的请求将保持不变。

Kashi让一个jsp将数据发送到一个servlet。然后将数据从该servlet转发到第二个jsp。此外,编写java非常不鼓励在servlet中执行逻辑操作,并且只显示“JSP中的数据。不,那是not NECCASARY中的import语句。@FarazDurrani谢谢,你能给我举个例子吗?Kashi让一个jsp向servlet发送数据。然后将数据从该servlet转发到第二个jsp。而且,在JSP中编写java是非常不受鼓励的。在servlet中执行逻辑操作,只在JSP中“显示”数据。不,那是not NECCASARY中的导入语句。@FarazDurrani谢谢,你能在我的例子中给我举个例子吗。我写了这个,但它给出了以下错误:接口HttpSession中的方法setAttribute不能应用于给定的类型。。。。必需:字符串,找到的对象:无参数在JSP中,会话是HttpSession类型的隐式对象,因此我们可以直接使用它。更新了my answer.org.apache.jasper.jaspereException:PWC6033:JSP的Javac编译错误PWC6199:生成的servlet错误:源值1.5已过时,将在未来版本中删除PWC6199:生成的servlet错误:目标值1.5已过时,将在未来版本中删除PWC6199:生成的servlet错误:To抑制有关过时选项的警告,请使用-Xlint:-options。PWC6197:jsp文件:/index.jsp PWC6199中的第421行发生错误:生成的servlet错误:“此处不允许使用void”类型我写了这篇文章,但它给出了以下错误:接口HttpSession中的方法setAttribute无法应用于给定的类型。。。。必需:字符串,找到的对象:无参数在JSP中,会话是HttpSession类型的隐式对象,因此我们可以直接使用它。更新了my answer.org.apache.jasper.jaspereException:PWC6033:JSP的Javac编译错误PWC6199:生成的servlet错误:源值1.5已过时,将在未来版本中删除PWC6199:生成的servlet错误:目标值1.5已过时,将在未来版本中删除PWC6199:生成的servlet错误:To抑制有关过时选项的警告,请使用-Xlint:-options。PWC6197:jsp文件的第421行发生错误:/index.jsp PWC6199:生成的servlet错误:“此处不允许使用void”类型我尝试了此操作,并出现了此异常:javax.servlet.ServletException:java.sql.SQLException:无法绝对定位到行