在 Servlet 中设置值并使用 RequestDispatcher 在 jsp 中检索它
在 test1Servlet 中:
request.setAttribute("Alpha",alpha);
RequestDispatcher rd = request.getRequestDispatcher("Test.jsp");
rd.forward(请求,响应);
在 Test.jsp 中: 单击按钮时,我使用请求属性值对另一个 servlet 进行 ajax 调用
$(document).ready(function(){
$(".button1").click(function(){
$.ajax({
type: "POST",
url: "<%=request.getContextPath()%>/test2Servlet",
data: {"alpha":<%=request.getAttribute("alpha")%>,"ins":10},
dataType:"text",
在这种情况下,如果我在 test1Servlet 中将 alpha 值设置为 0017,则在 jsp 中得到 0015。
这个值是如何改变的?
请大家帮我解决这个问题。
最佳答案
那里没有错误。您获得了正确的值。
在许多语言中,前面带有零的数字被解释为八进制或十六进制:
- 八进制:017 = 15
(因为 1 的计算结果是 8 和 7。所以 1×8+7=15)。 - 十六进制:0x17 = 1×16 + 7 = 23
尝试一下:
<script>
var x = 0017;
var y = 0x17;
alert("x:" + x);
alert("y:" + y);
</script>
由于 post 参数已转换为字符串,因此您可以将值放在引号中。或者避免数字中出现前导零。
关于java - 将属性从 Servlet 传递到 jsp 时值不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41506203/