jsp中的request.getAttribute给出null值

时间:2015-08-07 09:29:25

标签: jsp struts

所以在我的Action类中,我有以下代码。

public ActionForward detailsForUploadForm(ActionMapping mapping,
        ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws IOException, ServletException {

    try {
        response.setHeader("Cache-Control", "no-store");
        response.setHeader("Cache-Control", "no-cache"); // HTTP 1.1
        response.setHeader("Pragma", "no-cache"); // HTTP 1.0
        response.setDateHeader("Expires", 0); // prevents caching at the
        // proxy server



        request.setAttribute("filePath", filePath);

    } catch (Exception ex) {}

在我的jsp文件中,我有以下

<html>String path = (String)session.getAttribute("path"); 
String filePath = (String)request.getAttribute("filePath");</html>
<form> <table>
 <input type="hidden" name="filePath" id="filePath" value="<%=filePath%>"/>
 </form>
 </table>           

问题是,我在我的java类中得到了值,但在我的jsp文件中,我得到的值为null。

2 个答案:

答案 0 :(得分:0)

如果使用struts显示值,则将其用于显示

<s:property value="%{#request.AttributeName}" />

答案 1 :(得分:0)

<html>String path = (String)session.getAttribute("path"); 
String filePath = (String)request.getAttribute("filePath");</html>.

这段代码是什么?您打算在scriptlet <% %>中编写java代码,但是您已在<html>标记内写入。这不会在JSP中设置任何变量。相反,此代码将以文本形式显示在页面上。

如果要在JSP中访问请求属性,最好的方法是表达式语言。你也不会在scriptlet中需要上面的代码。

只需使用${filePath}

即可
 <input type="hidden" name="filePath" id="filePath" value="${filePath}"/>