1. セッション情報の受け渡し (チェックボックス配列)
アクションクラスです。
package action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import action.form.HelloWorldForm;
public class HelloWorldAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,HttpServletRequest request,HttpServletResponse response)
throws Exception {
//自分のクラスのフォームクラスを生成
HelloWorldForm dform = (HelloWorldForm) form;
// フォームのsetter(プロパティ)にセット
dform.setName("tarou");
//リクエストにフォームをセット(別にセットしなくても取り出せるよ)
request.setAttribute("DFORM",dform);
return mapping.findForward("hello");
}
}
アクションフォームクラスです。
package action.form;
import java.util.ArrayList;
import java.util.Vector;
import org.apache.struts.action.ActionForm;
public class TestF extends ActionForm{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
private String che[] = null;
public void setChe(String[] che){
this.che = che;
}
public String[] getChe(){
return che;
}
JSP
<%@page contentType="text/html; charset=Shift_JIS"
%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"
%>
<html:html locale="true" >
<BODY>
<!-- 1)HTMLのFORMタグに変換される -->
<html:form action="/HelloWorld" >
<!-- 2)メッセージリソースを表示する -->
<bean:message key="greeting" /><BR>
お名前をどうぞ。<BR><html:text property="name" /><BR>
<%for(int i=0; i<10; i++){
String n = Integer.toString(i);
%>
<BR><html:multibox property="che" value=n/><BR>
<%}%>
<html:submit>
<bean:message key="greeting" />
</html:submit>
</html:form>
</BODY>
</html:html>
アクションフォームクラスです。受け取り側
package action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import action.form.TestF;
import action.form.HelloWorldForm;
public class TestA extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,HttpServletRequest request,HttpServletResponse response)
throws Exception {
//渡し側でフォーム情報をセットされた時の受け取り方法(おすすめできない)
//HelloWorldForm f = (HelloWorldForm) request.getAttribute("DFORM");
//渡し側でフォーム情報をセットしてない時の受け取り方法(おすすめ!!)
HelloWorldForm f = (HelloWorldForm)request.getSession().getAttribute("HelloWorldForm");
//フォーム情報のテスト表示
TestF testf = (TestF)form;
System.out.println(f.getInfo());
//JSPから選択されたチェックの表示をしてみた
if(f.getChe()!=null){
String[] strarr = f.getChe();
for(int i=0; i<f.getChe().length; i++){
System.out.println(strarr[i]);
// System.out.println("aaaa="+f.getChe()[i]);
}
}
//渡し側でセットした時のフォーム情報の削除
//request.removeAttribute("DFORM");
//渡し側でセットしていない時のフォーム情報の削除
//request.getSession().removeAttribute("HelloWorldForm");
return mapping.findForward("hello");
}
}
1. セレクトボックス生成
アクションクラスです。
package action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import action.form.TestF;
import action.form.HelloWorldForm;
public class TestA extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,HttpServletRequest request,HttpServletResponse response)
throws Exception {
TestF testf = (TestF)form;
testf.createList();
//testf.setNo(2);
//testf.testList();
return mapping.findForward("hello");
}
}
アクションフォームクラスです。
package action.form;
import java.util.ArrayList;
import java.util.Vector;
import org.apache.struts.action.ActionForm;
import entity.boxEntity;
public class TestF extends ActionForm{
//ボックスを入れるlistのsetter,getterを作成
private ArrayList listEntity;
private ArrayList testBox;
/**
* @return listEntity を戻します。
*/
public ArrayList getListEntity() {
return listEntity;
}
/**
* @param listEntity listEntity を設定。
*/
public void setListEntity(ArrayList listEntity) {
this.listEntity = listEntity;
}
public void createList(){
listEntity=new ArrayList();
ArrayList meisaiList = new ArrayList();
for(int i=0; i<5; i++){
boxEntity box = new boxEntity();
box.setBoxId(i);
box.setBoxNm("名字"+Integer.toString(i));
meisaiList.add(box);
}
this.setListEntity(meisaiList);
}
}
ボックス情報(entity)クラスです。
package entity;
public class boxEntity{
private int boxId;
private String boxNm;
/**
* @return boxId を戻します。
*/
public int getBoxId() {
return boxId;
}
/**
* @param boxId boxId を設定。
*/
public void setBoxId(int boxId) {
this.boxId = boxId;
}
/**
* @return boxNm を戻します。
*/
public String getBoxNm() {
return boxNm;
}
/**
* @param boxNm boxNm を設定。
*/
public void setBoxNm(String boxNm) {
this.boxNm = boxNm;
}
}
JSPです。
<%@page contentType="text/html; charset=Shift_JIS"
%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ page import="action.form.*" %>
<%
TestF form = (TestF)session.getAttribute("TestF");
%>
<%try{%>
<html:html>
<BODY>
<!-- 1)HTMLのFORMタグに変換される -->
<html:form action="/TestA" >
<%out.println(form.getNo());%>
<html:select name="TestF" property="no">
<html:optionsCollection name="TestF" property="listEntity"
value="boxId" label="boxNm" />
</html:select>
<html:submit>
<bean:message key="greeting" />
</html:submit>
</html:form>
</BODY>
</html:html>
<%}catch(Exception e){e.printStackTrace();System.out.println("aaaaaaa");}%>
Topへ
|