.. 您好,
我在.jsp页面中有一个隐藏的输入:
<form ... method="post">
...
<input type="hidden" name="tc" value="true"/>
...
</form>
在服务器端(全部在GAE中),java代码就是这样......
@POST
@Path("after")
public Response afterTC(
...
@FormParam("tc") boolean tc
...
) throws URISyntaxException {
return Response.ok("OK!").build();
}
该方法被完美地调用,但是...在调试并尝试恢复tc值时...它总是错误的...我怎样才能得到正确的tc值?不知道怎么做=(
谢谢!
答案 0 :(得分:3)
你的示例代码对我有用(也就是说,我把基本相同的东西放在一起,tc是真的)。
我确信问题不在于输入类型是隐藏的 - 从处理代码的角度来看,隐藏的输入看起来与任何其他表单输入完全相同。它们都是通过字符串名称和字符串值发送的...在这种情况下,值会在幕后转换为布尔值。
在你的情况下,我会做的就像Pavel建议的那样 - 尝试@FormParam("tc") String tc
并确定通过什么字符串值。这只是一种调试技术;一旦你弄清楚出了什么问题并修复它,就可以将它切换回布尔值。
如果是我,我的第一个猜测将是一个错字 - 如果输入的“名称”与您给予FormParam的名称不同,那么它将会显示为假。
答案 1 :(得分:0)
您是否尝试使用布尔而不是布尔值?布尔值应该在这种情况下起作用。
答案 2 :(得分:0)
您是否可能没有提交包含此<input>
的表单?
我的意思是如果你有这样的东西:
<form>
<input type="hidden" name="tc" value="true"/>
</form>
<form>
<input type="submit"/>
</form>
有两种不同的形式,只有第二种形式(没有“tc”输入)被提交。