jsp中获取不了其他文件传来的数据
试了好多方法都不能接收到,或者接收到的内容为null
用${}获取显示无法解析变量
试过request.getAttribute获取,也试过session获取得到的结果都是null
//发送
HttpSession session=request.getSession();
session.setAttribute("flag1","111");
// response.sendRedirect("index.jsp");
//获取
var name=<%=request.getSession(flag1);
//getAttribute方法也试过,还是为null
//用${}显示无法解析变量,但是也引入了<%@page isELIgnored="false" %>
后来尝试用jsp的ajax向另一个jsp发送显示success,但是还是接收不到或者接收到的还是null
<script>
function post(){
var name=$('#sign_name').val();
$.ajax({
type:"POST",
dataType:"text",
url:"main.jsp",
data: {
"name": name
},
success:function (){
alert("success");//跳转前显示success
},
error:function (){
alert("false");
}
})
window.location.href='main.jsp';
}
</script>
//接收
<script>
function get(){
var name=${name};//无法解析变量
}
//用var name=<%=request.getAttribute(name);接收到为null
</script>
不知道是什么原因,求解/(ㄒoㄒ)/~~
回答:你对jsp的域对象的使用不是很了解,需要加引号,示例如下:
控制层返回一个域对象
页面中使用
【以下回答由 GPT 生成】
从你提供的代码和描述中,可以看出存在一些问题。下面是一些可能的解决方法:
session.setAttribute
,但在接收数据时,你应该使用session.getAttribute
来获取数据。你的接收代码应该如下所示:var name = '<%= session.getAttribute("flag1") %>';
success
回调函数中跳转到main.jsp
,但由于是异步请求,切换页面时可能还没有接收到响应,因此你将会丢失数据。你可以将跳转放在success
回调函数中,并在跳转前使用session.setAttribute
设置接收到的数据,如下所示:$.ajax({
type: "POST",
dataType: "text",
url: "main.jsp",
data: {
"name": name
},
success: function (){
alert("success");
<% session.setAttribute("flag1", request.getParameter("name")); %>
window.location.href='main.jsp';
},
error: function (){
alert("false");
}
});
在main.jsp
中,你可以使用上面提到的方式来接收数据。
如果上述解决方法都没有解决你的问题,请提供更多相关代码和详细描述。