【问题标题】:jsp unable to put session attribute into stringjsp无法将会话属性放入字符串
【发布时间】:2013-07-09 10:23:55
【问题描述】:

我在 jsp 页面中遇到了会话属性的问题,我想将它传递到一个字符串中,以便我可以使用它来查询数据库,例如,

String group=session.getAttribute("group"); 

我知道它已正确填充,因为如果我将以下内容放在页面中,它会显示正确的值

<%=
session.getAttribute("group")
 %>

我得到的错误是

类型不匹配:无法从 Object 转换为 String

有没有其他方法可以将会话变量放入字符串?还是我做错了。非常感谢任何帮助。

【问题讨论】:

  • session 变量是什么?你怎么得到它?是HttpSession 吗?

标签: java jsp


【解决方案1】:

您必须将其转换为 String

String group=(String)session.getAttribute("group"); 

session.getAttribute("group"); 返回Object

【讨论】:

  • 我尝试像你说的那样通过代码进行更改,但现在得到“字符串无法解析为类型”
  • @Baadshah 你不认为导入是默认的。我认为这是一个错字。
  • @SubirKumarSao 是的。但我只是让他交叉检查:) 最后他发现了那个错字。
  • @user2168435 没问题。每个程序员都会遇到 :)
  • 我更喜欢String group=session.getAttribute("group").toString();
【解决方案2】:

session.getAttribute(String name) 将返回一个Object

为了安全并防止任何意外ClassCastException,我会使用String.valueOf(Object obj),如下所示:

String group = String.valueOf(session.getAttribute("group"));

来源:

Difference between casting to String and String.valueOf

http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpSession.html#getAttribute(java.lang.String)

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#valueOf(java.lang.Object)

【讨论】:

    【解决方案3】:

    你就是这样写的:

    String group=""+session.getAttribute("group"); 
    

    附加为字符串,简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 2019-04-02
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多