将变量从scriplet传递到jsp-空指针

gblwokeq  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(184)

努力将一个变量从一个jsp中的scriplet传递到“调用jsp”
jsp将二进制流发布到upload.jsp。upload.jsp处理该流并确定我想在assedit.jsp中提供的文件路径,但返回的值总是生成空指针。
我显然做了一些根本错误的事情,我甚至在帖子中尝试了异步来“停止”jsp,以防事情发生得太快。
我很感激你。
assetedit.jsp文件-

//post binary to upload.jsp
$.ajax({
url: '/wz/upload.jsp',
data: decodedstring,
type: 'POST',
contentType: false,
processData: false,
}).done(function(data) {
console.log(data);
});

upload.jsp(为了便于理解,删除了一些行)-

<%
try {
String root = getServletContext().getRealPath("/uploads/"); 
BufferedInputStream bis = new BufferedInputStream(request.getInputStream());
String nm = System.currentTimeMillis() + ".jpg";
String filepath = root + "/" + nm;
String realpath = (filepath.substring(filepath.lastIndexOf("/") - 7));
System.out.println("realpath is   "  + realpath);
pageContext.setAttribute("pathtogo", realpath);

}
fos.close();
bis.close();
);
} catch (Exception ex) {
ex.printStackTrace();
}
%>

assetedit.jsp文件-

<%
String str = request.getAttribute("pathtogo").toString();
System.out.println("pathtogo is   "  + str);
%>

也尝试过(在assetedit.jsp中)-

<%
        String name=(pageContext.getAttribute("pathtogo").toString()); 
        System.out.println("pathtogo is "+name); 
%>

导致-uncaught typeerror:getelemrefs(…)为null
谢谢,我是否需要在upload.jsp中做另一个帖子来将路径发送回assetedit.jsp?
拉尔夫

tzxcd3kk

tzxcd3kk1#

您是否可以尝试使用会话作用域,以便在不同的jsp页面之间传递适当的变量。

pageContext.setAttribute("pathtogo",realPath,PageContext.SESSION_SCOPE);  

pageContext.getAttribute("pathtogo",PageContext.SESSION_SCOPE);

https://docs.oracle.com/javaee/6/api/javax/servlet/jsp/pagecontext.html
----编辑----
好吧,让我们试试别的:
上载.jsp

session.setAttribute("pathtogo",realPath);

assetedit.jsp文件-

<%
String str = (String)session.getAttribute("pathtogo");

System.out.println("pathtogo is   "  + str);
%>

或者 String.valueOf(session.getAttribute("pathtogo"));

相关问题