将会话值写入JSP页面中的文本文件

问题描述:

我必须将会话值写入JSP页面中的文本文件。我能够使用以下JSTL代码检索会话的值。将会话值写入JSP页面中的文本文件

<c:forEach items="${chapters}" var="name"> 
    <c:out value="Iteration..."/> 
    <c:out value="${name}"/> 
</c:forEach> 

检索值后,我必须将这些值写入到一个文本文件,然后将以下示例code效果很好。但是我不能在JSP标签内使用JSTL标签(<%...%>)。

1.是否可以在JSP标签内使用JSTL值?

2.如何检索JSP标签中的会话值?

为此使用一个servlet。 JSP只是一种视图技术。

不建议使用JSP来编写文本文件。最好使用backend technology,所以你需要使用servlet for that which is made for that,这种类型的操作必须由Server Side完成。

<c:set var="name" value="${name}"/> 

<%@ page import="java.io.*" %> 
<% 
    String str = (String)session.getAttribute("sessionName"); 
    String name = (String)pageContext.getAttribute("name"); 
    String nameOfTextFile = "/resources/data.txt"; 
    try { 
     PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile)); 
     pw.println(str); 
     pw.close(); 
    } catch(IOException e) { 
     out.println(e.getMessage()); 
    } 
%> 
+0

写入文本文件工作正常,但我的问题越来越JSP标签内的会话信息:

如果你仍然想这样做,你可以使用scriplet标签做到这一点。因为我不能在JSP标签内使用JSTL代码..我正在寻找一种方法来访问JSP标签中的会话变量对象详细信息。希望我明确表示,谢谢 – user3421325 2014-09-11 10:36:51

+0

@ user3421325:检查我更新的答案,我认为你需要将会话值转换为字符串,所以我使用了'(String)'。发布我所得到的。 – 2014-09-11 10:42:14

+0

这很有用。 “$ {chapters.name}”如何在JSP标签中获取这个值? – user3421325 2014-09-11 11:17:53