我有一个简单的程序,从用户填写3个数字的输入表单开始。表单操作引用一个控制器servlet,我用我定义的setter方法将数据存储在Bean类中。
cols <- c("A"="cornflowerblue","B"="firebrick2","C"="gold2", "D"="gray69", "E"="forestgreen", "F"="black")
g2=ggplot(data=juga, aes(x=Date, group=0))+
geom_line(aes(y=Dow),colour="A")+
geom_line(aes(y=NASDAQ),colour="B")+
geom_line(aes(y=S.P.500),colour="C")+
geom_line(aes(y=Nikkei.225),colour="D")+
geom_line(aes(y=Shanghai),colour="E")+
geom_line(aes(y=KOSPI),colour="F")+
scale_colour_manual(values=cols)+xlab("Dates") +ylab("Values")+
ggtitle("Juga graph")
g2
到目前为止,我已使用
将Number对象存储在请求中number.setNumber1(Double.parseDouble(request.getParameter("number1")));
并将其转发到输出页面,我可以使用$ {numbers.biggestNumber(getter-Method,它只是确定最大数字)}来获取它。我正在使用的教程说我也可以使用这段代码直接从Bean获取数据:
request.setAttribute("numbers", number);
但不知何故,Bean使用了Numbers类的另一个对象。我看到了这种技术的优点,因为我不必将Numbers对象放入请求中。有人能告诉我如何使用之前存储数据的相同Numbers对象吗?
我已经读过我不应该使用&#34; jsp:setProperty ...&#34;将数据存储在输入页面上,但如果我无法获得我手动写入Bean的信息,我必须问自己为什么我应该使用JSP JavaBeans注释。
我使用了搜索功能,但找不到适合我的问题的答案,或者我可能没有足够的经验让他们处于更高级的环境中...欢迎任何帮助
答案 0 :(得分:0)
如果你正在使用这个,
request.setAttribute("numbers", number);
使用requestDispacher重定向,然后在目标页面上也可以这样做,
进入JSP文件:
<jsp:useBean id="numbers" scope="request" class="model.Numbers"/>
<c:out value="${numbers.biggestNumber}/>
在这里,
- 你做错了范围=会话,意味着你把价值放在&#39;请求&#39;范围并尝试从会话中拉出它是错误的。
- 还保留属性名称&#39;相同&#39;同时放入/获取范围。在这里,名字=&#34;数字&#34;在推/放时保持
醇>
答案 1 :(得分:0)
好吧我的错误是我认为JavaBeans-Jsp-Tags可以节省时间和代码。实际上我必须创建一个HttpSession-Object来存储使用过的JavaBean的ID
HttpSession sess = request.getSession(true);
sess.setAttribute("number", number);
现在,Output.jsp中的JavaBean-Tag知道要使用哪个对象(在Input.jsp中创建的对象)。就我现在所理解的,JavaBean-Jsp-Tag高于普通参数的唯一优势就是我可以在整个Session中使用Bean-Class而不依赖于Request-Object。