将值从servlet传递到JSP - 在JSP页面接收null值。

问题描述 投票:0回答:2

我试图将两个值(intMethodSpotDays)从SourceServlet传递给名为CcySorting.jsp的JSP。

我正在使用setRequestAttribute()方法在servlet端设置值,并在JSP端使用getRequestAttribute()来接收值。但我在JSP中收到空值。我的代码如下。请查看它并提出可能的原因。我已经尝试了很多,但是徒劳无功。

我还提供了我的JSP和servlet文件夹结构。

我的文件夹结构:

  • JSP路径:application.war\CcySorting.jsp
  • Servlet路径:application.war\WEB-INF\classes\SampleServlet.class

我在Web.xml的参赛作品:

<servlet>
  <servlet-name>SampleServlet</servlet-name>
  <servlet-class>SampleServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>SampleServlet</servlet-name>
  <url-pattern>/SampleServlet</url-pattern>
</servlet-mapping>

我的JSP文件:

  • CcySorting.jsp function searchData(brn,ccy) { var frmObj =getUserFormObj('window','div0','form0'); window.open("/SampleServlet?BrnName="+brn+"&Currency="+ccy); var intMethod= <%= request.getAttribute("intMethod1") %>; var spotDay = <%= request.getAttribute("SpotDays1") %>; alert("data from servlet"+intMethod+"and spot"+spotDay1); }
  • SampleServlet.java public class SampleServlet extends HttpServlet{ public void service(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ // Some code to fetch the data from database and store in two variable intm and spot int int=2 int spot=3 request.setAttribute("intMethod1",int); request.setAttribute("SpotDays1", spot); RequestDispatcher rd=request.getRequestDispatcher("/CcySorting.jsp"); rd.forward( request, response ) ; } }
jsp servlets
2个回答
0
投票

嗯......除了检索数据之外,似乎一切都是正确的:

将您的jsp接收器更改为:

var intMethod= '<%= request.getAttribute("intMethod1") %>';
var spotDay = '<%= request.getAttribute("SpotDays1") %>';

0
投票

不鼓励使用scriplets。您可以尝试在JS函数中使用它。

var intmethod='${intmethod1}';
var spotday='${SpotDays1}';

还可以在HTML部分中尝试scriplets,看看您检索的值是什么。

intmethod=<%= request.getAttribute("intMethod1")%>;
spotsday=<%= request.getAttribute("SpotDays1") %>;
© www.soinside.com 2019 - 2024. All rights reserved.