struts サンプル!

 



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へ