问题描述
struts 标签中的value值是String类型?? 能否制定其他的类型!如下<bean:cookie id="cookie1" name="用户端保存过的一个cookie" value="String" />当然,这种情况是用户端已经保存过cookie了,这里定义的id变量名就是指的此cookie问题来了如何用户端没有保存cookie,<bean:cookie id="cookie1" name="用户端没有保存过的一个cookie" value="XXX" />那么如上语句是否给新建一个cookie?如果是,那么新建的一个Cookie(String string,Object object)。。。到这里我就不明白了,这个cookie的 “键-值” 其中的值是用value="XXX" 设置的。那么value能否设置其他类型的,我做了几个实验,但是没有成功。在网上查了查没有找到,答案,不知道,有没有人研究过! 还是我理解有错误!另一种可能:<bean:cookie id="cookie1" name="用户端没有保存过的一个cookie" value="XXX" />这就话创建的了一个Sreing类型的变量<% String cookie1 = "XXX";%>小弟求解!如果有说得原理上的错误,尽情谅解!
解决方案
像这种问题 最好看一下 帮助文档 对那个标签 有很 明确和详细的 说明的!官方的才是标准! 其他的都是二手资料! 这也是自己学习新东西的一个方法!当然 你的想法 也是 合理的! 应该 现实开发中 对于你这样的需求是很多的! Cookie不存在的话会创建一个,但是value值只能是String类型,不能是其他类型的,因为构造函数是这样 Cookie(String name,String value);看到这 我想你已经明白了!
解决方案二:
既然bean:cookie是把Cookie转化成Bean,那么你首先要了解Cookie,Cookie是这样的Cookie(String name,String value);而不是你说的那种value是Object类型的,所以如果Cookie不存在的话会创建一个,但是value值只能是String类型,不能是其他类型的,因为构造函数是这样,还有一个原因就是value的属性值要作为Cookie中实例变量value的值,而value这个实例变量的类型恰恰就是String类型的。总结:如果name所指的Cookie不存在,<bean:cookie>标签就会创建一个新的Cookie对象,而value属性的值就是这个 Cookie对象的value属性值。如果忽略value属性,当<bean:cookie>标签未找到name指写的Cookie时,就会抛出一个javax.servlet.jsp.JspException异常。