- PR -

strutsでHashMapを使ってデータを表示。

1
投稿者投稿内容
オガシン
常連さん
会議室デビュー日: 2006/05/23
投稿数: 31
投稿日時: 2006-05-23 13:35
こんにちは。最近Java,JSPを始めたのですが、HashMapを使ったデータの受け渡しが
できません。目的は簡単なソフトウェアの管理画面を作って見ようと思ってます。
ゆくゆくはDBを用いて。
初心者で、色々なところからの寄せ集め見たいなソースですが、
乗せますので、ご指導お願いします。

・一覧画面(ichiran.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" %>

<html:html>

<head>
<title> 一覧画面 </title>
</head>

<body>

<center><font size = "+2"> 一覧画面 </font></center
<center><table border= "3" width="80%">
(中略)
<tr>
  <td>
    <bean:write name="MyForm" property="record(1)"/>
  </td>
</tr>
     </table></center>
     </body>

</html:html>

・アクションFormBean

package licenseManageSystem;

import org.apache.struts.action.ActionForm;
import java.util.HashMap;

public final class IchiranForm extends ActionForm
{
private HashMap record ;

public IchiranForm() {
record.clear();
}

public void setRecord (String key,String name)
{
record.put(key,name);
}

public String getRecord(String key)
{
String name="";
name=(String)record.get(key);
return name;
}
}

・アクションクラス

package licenseManageSystem;

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;


public final class IchiranAction extends Action
{
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res)
throws Exception
{
IchiranForm myForm = (IchiranForm)form;
myForm.setRecord("1","struts");
return mapping.findForward("success");
}
}


・struts-config

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

<!-- ======================================== Form Bean Definitions -->

<form-beans>
<form-bean
name="MyForm"
type="IchiranForm">
</form-bean>
</form-beans>

<!-- =================================== Action Mapping Definitions -->

<action-mappings>
<action
path="/IchiranAction"
type="IchiranAction"
name="MyForm"
scope="request">
<forward name="success" path="/ichiran.jsp"/>
</action>
</action-mappings>

</struts-config>

まずは、簡単にひとつの要素を表示したいのですが、Cannot Find bean MyForm in any scope
とエラーが出てしまいます。以上、宜しくお願いします。

[ メッセージ編集済み 編集者: オガシン 編集日時 2006-05-23 14:17 ]
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2006-05-23 22:26
動作確認まで実行していませんが、気付いた点を一つだけ。

Form Beans Definitions と Action Mapping Definitions コメント以下でクラス名が現れるところは、FQN (Fully-Qualified Name) で書く必要があったと思います。

type="IchiranForm" と type="IchiranAction" のところをそれぞれ type="licenseManagerSystem.IchiranForm" と type="licenseManagerSystem.IchiranAction" に変えてみてください。

エラーメッセージが MyForm に対応するクラスの解決に由来するならば、これが原因だと思います。
オガシン
常連さん
会議室デビュー日: 2006/05/23
投稿数: 31
投稿日時: 2006-05-23 23:28
Gioさん、お返事ありがとうございます。
始めて投稿して、場所もわからず、ネストしたつもりがされてなく、
見づらい書き込みですみませんでした。

さて、後指摘いただいた部分ですが、今、仕事の勉強でやっているものなので、
明日試して見たいと思います。
オガシン
常連さん
会議室デビュー日: 2006/05/23
投稿数: 31
投稿日時: 2006-05-24 09:28
Gioさん、すみません。

エラーが変わりませんでした。
なんとか自分でも調査して、直してみます。
オガシン
常連さん
会議室デビュー日: 2006/05/23
投稿数: 31
投稿日時: 2006-05-24 15:56
現在Lvを落として考えています。
また、簡単なソースを載せました。
相変わらずエラーは変わりません・・・

Javaの掲示板へ乗せましたので、ご教授いただければ幸いです。

宜しくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)