我有一个简单的程序,从用户填写3个数字的输入表单开始。表单操作引用一个控制器servlet,我在其中使用已定义的setter方法将数据存储在Bean类中。
number.setNumber1(Double.parseDouble(request.getParameter("number1")));到目前为止,我将请求中的Number对象存储为
request.setAttribute("numbers", number);并将其转发到输出页面,在那里我可以使用${numbers.biggestNumber ( getter-Method,简单地确定最大数字) }获取它。我正在使用的一个教程说,我也可以通过使用这段代码直接从Bean获取数据:
<jsp:useBean id="num" scope="session" class="model.Numbers"/>
<c:out value="${num.biggestNumber}/>但不知何故,Bean使用了Numbers的另一个对象--类。我看到了这种技术的优点,因为我不必将Numbers对象放入请求中。谁能告诉我如何使用我之前存储数据的相同的Numbers对象?
我已经读到我不应该使用"jsp:setProperty...“来将数据存储在输入页面上,但是如果我不能获得手动写入Bean的信息,我就不得不问自己为什么要使用JavaBeans注释。
我使用了搜索功能,但找不到适合我的问题的答案,或者我只是没有足够的经验在更高级的上下文中获得它们……任何帮助都是欢迎的
发布于 2015-12-03 19:56:49
如果你使用的是这个,
request.setAttribute("numbers", number);使用requestDispacher重定向,然后在目标页面上,您也可以这样做,
到JSP文件中:
<jsp:useBean id="numbers" scope="request" class="model.Numbers"/>
<c:out value="${numbers.biggestNumber}/>在这里,
时,name="numbers“保持
发布于 2015-12-03 23:36:06
好吧,我的错误是我认为JavaBeans-Jsp-Tags会节省时间和代码。实际上,我必须创建一个HttpSession对象来存储所使用的JavaBean的ID
HttpSession sess = request.getSession(true);
sess.setAttribute("number", number);现在,我的Output.jsp中的JavaBean标记知道要使用哪个对象(在Input.jsp中创建的那个)。据我所知,添加到请求中的JavaBean-Jsp-Tag的唯一优点是,我可以在整个会话中使用Bean-Class,而不依赖于Request-Object。
https://stackoverflow.com/questions/34064934
复制相似问题