我试图将两个值(intMethod
和SpotDays
)从SourceServlet
传递给名为CcySorting.jsp
的JSP。
我正在使用setRequestAttribute()
方法在servlet端设置值,并在JSP端使用getRequestAttribute()
来接收值。但我在JSP中收到空值。我的代码如下。请查看它并提出可能的原因。我已经尝试了很多,但是徒劳无功。
我还提供了我的JSP和servlet文件夹结构。
我的文件夹结构:
application.war\CcySorting.jsp
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文件:
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);
}
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
接收器更改为:
var intMethod= '<%= request.getAttribute("intMethod1") %>';
var spotDay = '<%= request.getAttribute("SpotDays1") %>';
不鼓励使用scriplets。您可以尝试在JS函数中使用它。
var intmethod='${intmethod1}';
var spotday='${SpotDays1}';
还可以在HTML部分中尝试scriplets,看看您检索的值是什么。
intmethod=<%= request.getAttribute("intMethod1")%>;
spotsday=<%= request.getAttribute("SpotDays1") %>;