首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaBeans:无法从JavaBeans类读取变量

JavaBeans:无法从JavaBeans类读取变量
EN

Stack Overflow用户
提问于 2015-12-03 19:31:22
回答 2查看 107关注 0票数 0

我有一个简单的程序,从用户填写3个数字的输入表单开始。表单操作引用一个控制器servlet,我在其中使用已定义的setter方法将数据存储在Bean类中。

代码语言:javascript
复制
number.setNumber1(Double.parseDouble(request.getParameter("number1")));

到目前为止,我将请求中的Number对象存储为

代码语言:javascript
复制
request.setAttribute("numbers", number);

并将其转发到输出页面,在那里我可以使用${numbers.biggestNumber ( getter-Method,简单地确定最大数字) }获取它。我正在使用的一个教程说,我也可以通过使用这段代码直接从Bean获取数据:

代码语言:javascript
复制
<jsp:useBean id="num" scope="session" class="model.Numbers"/>
<c:out value="${num.biggestNumber}/>

但不知何故,Bean使用了Numbers的另一个对象--类。我看到了这种技术的优点,因为我不必将Numbers对象放入请求中。谁能告诉我如何使用我之前存储数据的相同的Numbers对象?

我已经读到我不应该使用"jsp:setProperty...“来将数据存储在输入页面上,但是如果我不能获得手动写入Bean的信息,我就不得不问自己为什么要使用JavaBeans注释。

我使用了搜索功能,但找不到适合我的问题的答案,或者我只是没有足够的经验在更高级的上下文中获得它们……任何帮助都是欢迎的

EN

回答 2

Stack Overflow用户

发布于 2015-12-03 19:56:49

如果你使用的是这个,

代码语言:javascript
复制
request.setAttribute("numbers", number);

使用requestDispacher重定向,然后在目标页面上,您也可以这样做,

到JSP文件中:

代码语言:javascript
复制
<jsp:useBean id="numbers" scope="request" class="model.Numbers"/>
<c:out value="${numbers.biggestNumber}/>

在这里,

  1. 你使用了错误的scope=session,这意味着你正在将值放入'request‘作用域,并试图从session中拉出它是错误的。
  2. 在放入/获取作用域时也会保持属性的名称'same’。在这里,当使用putting/getting

时,name="numbers“保持

票数 0
EN

Stack Overflow用户

发布于 2015-12-03 23:36:06

好吧,我的错误是我认为JavaBeans-Jsp-Tags会节省时间和代码。实际上,我必须创建一个HttpSession对象来存储所使用的JavaBean的ID

代码语言:javascript
复制
HttpSession sess = request.getSession(true);
sess.setAttribute("number", number);

现在,我的Output.jsp中的JavaBean标记知道要使用哪个对象(在Input.jsp中创建的那个)。据我所知,添加到请求中的JavaBean-Jsp-Tag的唯一优点是,我可以在整个会话中使用Bean-Class,而不依赖于Request-Object。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34064934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档