<action path="/sample1" type="sample1.Action1" name="form1" scope="request"> <forward name="success" path="/sample1.jsp" /> </action>
struts-config.xmlで上のような定義をすれば、
bean:write=<bean:write name="form1" scope="request"/>
のようにsample1.jspからbeanを参照できる。
気になったのはscopeのところ。これでbeanのライフサイクルを指定できるのは分かるけど、内部ではどのようにデータを管理しているのだろう。
RequestProcessor#processActionFormに書いてた。
if ("request".equals(mapping.getScope())) { request.setAttribute(mapping.getAttribute(), instance); } else { HttpSession session = request.getSession(); session.setAttribute(mapping.getAttribute(), instance); }
そういうことか。まあ普通に考えるとそうか。。ってことは、JSPから
request scope bean = <%=request.getAttribute("form1") %> session scope bean = <%=session.getAttribute("form1") %>
とすれば"form1"という名前のActoinForm Beanを参照できるってことか。
出来た、出来た。
0 件のコメント:
コメントを投稿