人に聞けない痔の悩み、これでスッキリ >>

EclipseとStrutsを使ってWebアプリケーションを作成しています。作成したものをブラウザで確認した際に、以下のようなメッセージが「説明」の部分に出ました。
The server encountered an internal error () that prevented it from fulfilling this request.
また、「例外」と「原因」の部分に以下のメッセージが出ています。
javax.servlet.ServletException: このコレクションに対するイテレータは生成できません。
これはどのような意味のエラーなのか教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

恐らくエラーメッセージの所にあるように、「コレクション」と「Bean」との連携がうまくいっていないことが原因かと思われます。



コレクション内の個々のデータの操作に関しては、既に用意されているアクセッサメソッド[get()やset()にadd()、remove()などなど。]を使用するかと思いますが、Struts内では各コレクションのオブジェクト(いわゆる、各々のコレクションを使用する時にnewで生成されたインスタンス。)をBeanを用いて操作しているかと思います。

よって、そのBeanでのアクセッサメソッド[setXxx()やgetXxx()など。]に間違いが無いかどうかなどに注意してください。具体的には、英数字が一文字一句間違っていないのかどうかとか、場合によっては簡単なデバック文を追加してみて、本当に各コレクションのオブジェクトがBeanに格納されているのかどうか、もしくは正確にBeanから取得できているのかどうかなどを確認してみてください。
    • good
    • 0

このエラーはある動作をすると再現可能なのでしょうか?



正直これだけではよくわかりません、APサーバーの内部エラーっぽいですが・・・

スタックトレースは1行しか出ていないのでしょうか?
他にもずらずら出ているのでしたらそこのへんにヒントがあるかもしれません。

http://grape.sapid.org/tutorial/lec1.html
↑prevented it from fulfilling this requestでぐぐったら上記サイトがひっかかりました、他にも類似の質問等がかかったので似たようなケースを探してみるのもいいかもしれません。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QStrutsでJSPからListを受け取りたい

JSPに複数のhidden(動的に数が変化)があり、これらの値をformのlist(配列)に詰めたいです。
尚、nameの値は別の処理でjavascriptを使いvalueを変化させるため連番であれば構わないです。です。

~~~JSP~~~
<input type="hidden" name="str1" value="a"/>
<input type="hidden" name="str2" value="b"/>
<input type="hidden" name="str3" value="c"/>
~~~~~~~~
上のJSPから下記のFORMに詰めたい
~~~form~~~
private List strList;

public List getStrList(){
return strList;
}
~~~~~~~~

又、こちらで調べたところ下記のようにすればいけるようですが欲しい値は一つのためBeanを使用しなくても実現可能ではないかと思い、質問させていただきました。
よろしくお願い致します。

~~~JSP~~~
<input type="hidden" name="testArray[0].str" value="a"/>
<input type="hidden" name="testArray[1].str" value="b"/>
<input type="hidden" name="testArray[2].str" value="c"/>
~~~~~~~

~~~FORM~~~

private List list;
public TestBean getTestA(int iIndex) {
while (this.list.size() <= iIndex) {
this.list.add(new TestBean ());
}
return ( TestBean ) this.list.get(iIndex);
}
public Object[] getTestArray() {
return list.toArray();
}

public static class TestBean {
private String str = "";
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}

JSPに複数のhidden(動的に数が変化)があり、これらの値をformのlist(配列)に詰めたいです。
尚、nameの値は別の処理でjavascriptを使いvalueを変化させるため連番であれば構わないです。です。

~~~JSP~~~
<input type="hidden" name="str1" value="a"/>
<input type="hidden" name="str2" value="b"/>
<input type="hidden" name="str3" value="c"/>
~~~~~~~~
上のJSPから下記のFORMに詰めたい
~~~form~~~
private List strList;

public List getStrList(){
return strLis...続きを読む

Aベストアンサー

うーむむ・・・。こゆうことでしょうか。
アドバイスの方向が間違ってたらすいません。
(※実行してないため、コードはあくまで参考程度で。)

----Jsp側
<html:hidden property="strArray[0]" value="a" />
<html:hidden property="strArray[1]" value="b" />
<html:hidden property="strArray[2]" value="c" />
....

----Form側
String[] strArray;
List<String> strList;
public void setStrArray(String[] strArray) {
____this.strArray = strArray;
____this.strList = Array.asList(strArray);
}
public String[] getStrArray() {
____return this.strArray;
}
public List<String> getStrList() {
____return this.strList;
}

うーむむ・・・。こゆうことでしょうか。
アドバイスの方向が間違ってたらすいません。
(※実行してないため、コードはあくまで参考程度で。)

----Jsp側
<html:hidden property="strArray[0]" value="a" />
<html:hidden property="strArray[1]" value="b" />
<html:hidden property="strArray[2]" value="c" />
....

----Form側
String[] strArray;
List<String> strList;
public void setStrArray(String[] strArray) {
____this.strArray = strArray;
____this.strList = Array.asList(strArra...続きを読む

Qiterateで受け取った値を処理に使いたい

こんにちは、honiyonです。

 まだ知識が浅い為、おかしな言い回しがあるかも知れませんがご容赦くださいm(_ _)m

 Servlet側で作成したデータをJSP側で

<logic:iterate id="LOOP" name="LOOP_LIST" indexId="index">
<bean:write name="LOOP" property="data1"/>
<bean:write name="LOOP" property="data2"/>
</logic:iterate>

 のようにして表示する方法はわかりました。
 今度は、これを表示するのではなくて処理に使いたいのですが、その方法がわからず難儀しています。

 こんな書き方は出来ないのですが、こういう事がやりたいと思っています。


<logic:iterate id="LOOP" name="LOOP_LIST" indexId="index">

<!---こっちは普通に表示--->
<bean:write name="LOOP" property="data1"/>


<!---data2は処理に使う--->
<%
 ↓↓ここの書き方がわからない↓↓
String CODE= "<bean:write name="LOOP" property="data2"/>"

if (CODE == "1") { out.println("牛"); }
else { out.println("馬"); }
%>
</logic:iterate>


 よろしくお願いします(..

こんにちは、honiyonです。

 まだ知識が浅い為、おかしな言い回しがあるかも知れませんがご容赦くださいm(_ _)m

 Servlet側で作成したデータをJSP側で

<logic:iterate id="LOOP" name="LOOP_LIST" indexId="index">
<bean:write name="LOOP" property="data1"/>
<bean:write name="LOOP" property="data2"/>
</logic:iterate>

 のようにして表示する方法はわかりました。
 今度は、これを表示するのではなくて処理に使いたいのですが、その方法がわからず難儀しています。

 こんな書き方...続きを読む

Aベストアンサー

No.1の方のtypoを補いつつ、

<logic:equal name="LOOP" property="data2" value="1">

</logic:equal>
<logic:notEqual name="LOOP" property="data2" value="1">

</logic:notEqual>

ですね。これですむなら、この方法を採用すべきです。


「本当は牛馬ではなく、実はもっと複雑で」というのであれば、form-beanのpropertyを通じて表示データを取得できるように、あらかじめ仕込んでおく手法もあります。


「どうしてもスクリプトレットで」となると、logic:iterate の処理とは全く無関係に、自身でform-beanからデータを引っ張ってくることになるかと思います。背景を適当に想像で補って全体を記せば、例えば以下のようなコードです。
どこか倒錯した感がありますね。だから、この方法は使うべきではありません。

<%@ page import="myproject.ListForm" %>
<%@ page import="myproject.ItemForm" %>

<html:form action="/myproject/listAction">

<bean:define id="LOOP_LIST" name="listForm" property="list"/>
<logic:iterate id="LOOP" name="LOOP_LIST" indexId="index">
<bean:write name="LOOP" property="data1"/>
<%! int index = 0; %>
<%
ListForm list = (ListForm) request.getAttribute("listForm");
ItemForm item = (ItemForm) list.getList().get(index++);
String code = item.getData2();
out.println(code.eqauls("1") ? "牛": "馬");
%>
<hr/>
</logic:iterate>

※ String の同値Checkには、equals() を使います。

No.1の方のtypoを補いつつ、

<logic:equal name="LOOP" property="data2" value="1">

</logic:equal>
<logic:notEqual name="LOOP" property="data2" value="1">

</logic:notEqual>

ですね。これですむなら、この方法を採用すべきです。


「本当は牛馬ではなく、実はもっと複雑で」というのであれば、form-beanのpropertyを通じて表示データを取得できるように、あらかじめ仕込んでおく手法もあります。


「どうしてもスクリプトレットで」となると、logic:iterate の処理とは全く無関係...続きを読む

QJava Struts ~に対するゲッターメソッドがありません

Java Struts
WindowsXp
Java Struts共に初心者です。
上記を使用してログイン画面を作成しています。
エラーが発生しているのですが
「Bean LoginFrm のプロパティ id に対するゲッターメソッドがありません」
と言われます。
参考サイトはいくつもあるのですが、そもそもイテレータを使用していないとか私の状況に一致する回答を見つけることができませんでした。
(JAVA、Struts共に慣れていないためか応用がきかないみたいです)

loginTop.jsp
login.jsp
LoginFrm.java
LoginAct.java
struts-config.xml

のいずれかが原因だとは思うのですが、そのどこかが皆目見当もつきません。
loginTop.jsp-----------------------------
<html:form action="/login">
<table border="0">
<tr><td>
ログインID<html:text name="LoginFrm" property="id" size="6" maxlength="5" />
</td></tr>
<tr><td>
パスワード<html:password name="LoginFrm" property="pass" size="6" maxlength="5" />
</td></tr>
</table>
</html:form>

login.jsp----------------------
<html:form action="/login">
<table border="0">
<tr><td>
A:<bean:write name="LoginFrm" property="id" />
</td></tr>
<tr><td>
B:<bean:write name="LoginFrm" property="pass" />
</td></tr>
</table>
</html:form>

LoginFrm.java----------------------
private String id;
private String pass;
public String getID() {
return id;
}
public void setID(String id) {
this.id = id;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}

LoginAct.java--------------------
throws Exception {
request.setCharacterEncoding("Windows-31J");
LoginFrm logFrm = (LoginFrm) form;
log.info(" user = "+logFrm.getID());
log.info(" user = "+logFrm.getPass());
return mapping.findForward("login");
}

struts-config.xml---------------------------
<form-beans>
<form-bean name="LoginFrm" type="loginForm.LoginFrm" />
</form-beans>

<action attribute="LoginFrm"
input="/pages/loginTop.jsp"
name="LoginFrm"
path="/login"
type="loginAction.LoginAct"
scope="request"
validate="true">
<forward name="login" path="/pages/login.jsp" />
</action>

以上です。
かなり長くなり申し訳ありません。

Java Struts
WindowsXp
Java Struts共に初心者です。
上記を使用してログイン画面を作成しています。
エラーが発生しているのですが
「Bean LoginFrm のプロパティ id に対するゲッターメソッドがありません」
と言われます。
参考サイトはいくつもあるのですが、そもそもイテレータを使用していないとか私の状況に一致する回答を見つけることができませんでした。
(JAVA、Struts共に慣れていないためか応用がきかないみたいです)

loginTop.jsp
login.jsp
LoginFrm.java
LoginAct.java
struts-conf...続きを読む

Aベストアンサー

>public String getID() {
public String getId() {

>public void setID(String id) {
public void setId(String id) {

うーん、ここでしょうかねぇ・・・

Qwebアプリを作ってます。エラーがあります。

webアプリを作ってます。エラーがあります。
jspで引用符が必要と出てきます。どこがおかしいのかはっきりしません。

jspで引用符が必要と出てきます。どこがおかしいのかはっきりしません。教えて...

jspで引用符が必要と出てきます。どこがおかしいのかはっきりしません。
教えてください

原因がわからずで進みません。足りない部分がありますか?
ネットでみたけどよくわかりませんでした。

中略
if (teacherId==null || name==null || faculty==null) {
getServletContext().getRequestDispatcher("/InputErrorJSP.jsp").forward(request, response);
return;
}
if (department==null)
System.out.println("tias1");
//学科が入力されていない学科を空白
department="";

//Beans生成
TeacherInfoBeans teacherInfoBeans = new TeacherInfoBeans();
teacherInfoBeans.setTeacherId(teacherId);
teacherInfoBeans.setName(name);
teacherInfoBeans.setFaculty(faculty);
teacherInfoBeans.setDepartment(department);
System.out.println("tias2");
//登録
teacherInfoBeans.insert();
System.out.println("tias3");
//セッション登録
HttpSession session = request.getSession(true);
session.setAttribute("teacerInfoBeans",teacherInfoBeans);
System.out.println("tias4");
//結果を反映

getServletContext().getRequestDispatcher("/AddReportJSP.jsp").forward(request, response);
System.out.println("tias4.5");

}

中略

<%@ page contentType="text/html; charset=Windows-31J" %>
<head>
<html>
<title>
先生情報登録</title>
</head>
<body>
<jsp:useBean id="teacherInfoBeans"
class="info.searchman.TeacherInfoBeans"
scope="session" />
<h1>先生情報登録</h1>
次の情報を登録しました。
<br>
ユーザーID:<jsp:getProperty name=teacherInfoBeans" property="teacherId" /><br>
氏名:<jsp:getProperty name=teacherInfoBeans" property="name" /><br>
所属:<jsp:getProperty name=teacherInfoBeans" property="affiliation" /><br>
</body>
</html>

エクリプス コンソールログ
tias2
tib7
insert into teachers values ('3', 'c', 'cc', '')
tias3
tias4
2010/04/28 18:21:05 org.apache.catalina.core.ApplicationDispatcher invoke
致命的: サーブレット jsp のServlet.service()が例外を投げました
org.apache.jasper.JasperException: /AddReportJSP.jsp(14,30) 引用符が必要です

環境は
jdk1.6
eclipse3.2
posgre8.3
tomcat6.0です。

参考書はSCCの改訂 Webアプリケーション構築: 7章問題です。

webアプリを作ってます。エラーがあります。
jspで引用符が必要と出てきます。どこがおかしいのかはっきりしません。

jspで引用符が必要と出てきます。どこがおかしいのかはっきりしません。教えて...

jspで引用符が必要と出てきます。どこがおかしいのかはっきりしません。
教えてください

原因がわからずで進みません。足りない部分がありますか?
ネットでみたけどよくわかりませんでした。

中略
if (teacherId==null || name==null || faculty==null) {
getServletContext().getRequestDispatche...続きを読む

Aベストアンサー

追記。

>AddReportJSP.jsp(14,30) 引用符が必要です

これが思いっきりエラー箇所指摘してます。
14が行数、30が最初の文字から数えて30番目ってことです

QstrutsでArrayListの中の配列の表示の仕方。

タイトルどおりなんですが。よくわかりません。例えば以下のようです。numberに紐づいた複数のデータが配列に入っています。

public static Bean setBean (int number, String[] strArray){

bean.setNumber(number);
bean.setArray(strArray);


return bean;
}

たいぶ、はしょってますがこんな感じでbeanにintのnumberとStringの配列をsetして、受け取り側でそのbeanをArrayList(array)にaddしています。それをjspで表示したいのです。jspは下のようです。

<logic:iterate name="form" property="array" id="list" >

<bean:write name="list" property="number">

ここにstrArrayを表示したい。

</logic:iterate> 
といった具合です。どお書けばいいんでしょうか?ご教授お願いします。

タイトルどおりなんですが。よくわかりません。例えば以下のようです。numberに紐づいた複数のデータが配列に入っています。

public static Bean setBean (int number, String[] strArray){

bean.setNumber(number);
bean.setArray(strArray);


return bean;
}

たいぶ、はしょってますがこんな感じでbeanにintのnumberとStringの配列をsetして、受け取り側でそのbeanをArrayList(array)にaddしています。それをjspで表示したいのです。jspは下のようです。

<logic:iterate name="form" propert...続きを読む

Aベストアンサー

>ArrayListにbeanをsetしています。
ArrayListにbeanをセットしてあって、
beanにString配列をセットして、
beanで持ってるArrayListにString配列をセットしてある。

ってことでいいんですか?
複雑ですね。

ActionからJSPにはどうやって渡してますか?

で、先の参考URLは読みました?

参考URL:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=21965&forum=12

Qhtml:linkでリンククリック時に画面入力値を取得してアクションへ渡す方法

Strutsを使用したログイン画面を作成しています。ID・パスワードを入力して、html:linkをクリックしてログインするという処理を行いたいです。

そこで、リンクをクリックした際にJSPに記述しているhtml:textとhtml:passwordの値を取得して、Actionへ渡し、その情報を元にDBへの問い合わせを行いたいのですが、html:linkで複数パラメータを渡す方法が分からないので教えていただきたいです。

過去質も参考にしてみましたが、今回の質問に的を得た内容がなかったので質問させていただきました。

参考にした方法
(1)JavaScriptのonclickイベントでサブミットさせる
⇒例えばdocument.form.submit();と書けそうだが,html:formにはname属性がないため、formの指定ができない?!

(2)Mapを利用してパラメータを渡す
⇒JSP内にMap設定のロジックを書く。Map(name,value)の形式で、value部分(画面入力値)はどうやって取得するのか分からない。

【struts-config】
<action-mappings>
<action path="/login_Anken"
type="action.Login_Anken_Action"
name="login_Anken_Form"
validate="true"
input="/pages/Login_Anken.jsp"
scope="request">
<forward name="success" path="/pages/MainMenu.jsp"/>
<forward name="fail" path="/pages/Login_Anken.jsp"/>
</action>
【Login_Anken.jsp】
<html:form action="/login_Anken" >
<table border="0" width="100%" >
<tr>
<td class="pname" colspan="4" >
****システム
</td>
</tr>
<tr>
<td colspan="4">
<hr size="5" width="100%" noshade>
</td>
</tr>
<tr>
<td class="gname" colspan="4" >
ログイン
</td>
</tr>
<tr>
<td colspan="4" >
<hr size="5" width="100%" noshade>
</td>
</tr>
<tr>
<td width="25%" >
</td>
<td class="login">
ユーザID
</td>
<td width="20%"">
<html:text property="userId"/>
</td>
<td width="20%">
</td>
</tr>
<tr>
<td width="25%" >
</td>
<td class="login">
パスワード
</td>
<td width="20%"">
<html:password property="password" />
</td>
<td width="20%">
</td>
</tr>
<tr>
<td width="10%" align="center" colspan="4" >
<html:link action="/login_Anken" name="map">ログイン
</html:link>
</td>
</tr>
</table>
</html:form>

【Login_Anken_Action.java】
public class Login_Anken_Action extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
ActionMessages errors = new ActionMessages();
//画面入力値を取得
Login_Anken_Form loginAnkenForm = (Login_Anken_Form) form;
boolean isSuccess = false;
Login_Anken_Business business =
new Login_Anken_Business();
String userName = null;
userName =
business.getLoginUserName (loginAnkenForm.getUserId(),
loginAnkenForm.getPassword());

//ユーザが存在すればログインOK
isSuccess = (userName != null);
if (isSuccess) {
//TODO
HttpSession session = request.getSession();
session.setAttribute("name", userName);
return mapping.findForward("success");
} else {
errors.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("errors.login"));
saveErrors(request, errors);
return mapping.findForward("fail");
}
}
}

Strutsを使用したログイン画面を作成しています。ID・パスワードを入力して、html:linkをクリックしてログインするという処理を行いたいです。

そこで、リンクをクリックした際にJSPに記述しているhtml:textとhtml:passwordの値を取得して、Actionへ渡し、その情報を元にDBへの問い合わせを行いたいのですが、html:linkで複数パラメータを渡す方法が分からないので教えていただきたいです。

過去質も参考にしてみましたが、今回の質問に的を得た内容がなかったので質問させていただきました。

参考にした...続きを読む

Aベストアンサー

ああ
このHTML見て一目でわかったわ。
<a href="~"
のhrefにリクエストが飛んでいるだけね。
<a href="javascript:return false"
<a href="#"
とかにしないとonclickが正常に働かないわよ。

Q【Struts】bean:writeタグのpropertyの設定値を動的に変更

こんばんは。
bean:writeタグのpropertyの設定値を動的に変更したいと思っております。

<td width="200px;" nowrap><bean:write name="list" property="f_subJoining[1]"/></td>
※下記の『f_subJoining[1]』の1の値をの可変にしたいのです。


下記方法で試してみたのですが、上手くいかずに行き詰っております。
-------------------------------------
【1】の部分を<%=i%>で設定。
<bean:write name="list" property="f_subJoining[<%=i%>]"/>
-------------------------------------
【2】propertyにそのまま変数を設定
<%
String t_name = "f_subJoining[1]"
%>
<bean:write name="list" property="<%=t_name%>"/>
-------------------------------------
※【1】・【2】ともにエラーになってしまいます。

ご教授いただけたらと思います。
どうぞ、宜しくお願い致します。

こんばんは。
bean:writeタグのpropertyの設定値を動的に変更したいと思っております。

<td width="200px;" nowrap><bean:write name="list" property="f_subJoining[1]"/></td>
※下記の『f_subJoining[1]』の1の値をの可変にしたいのです。


下記方法で試してみたのですが、上手くいかずに行き詰っております。
-------------------------------------
【1】の部分を<%=i%>で設定。
<bean:write name="list" property="f_subJoining[<%=i%>]"/>
-------------------------------------
【2】prop...続きを読む

Aベストアンサー

1年前の記憶なので、確かではないのですが、
iterationでまわす場合は、変数名だけでは、駄目だった
と記憶しております。
<bean:write name="list" property="f_subJoining[<%=i%>]"/>
↓これに変えればいけませんか?
<bean:write name='list' property='<%="f_subJoining[" + i +"]"%>' />
iはjspタグでLoopしているものと仮定しています。

QStrutsでチェックボックスの値を取得する方法

明細行のチェックボックスで、選択した状態で画面再表示時にチェックを外した場合、再度画面を表示すると外したはずのチェックが戻ってしまいます。
現象
1.下記「作成したJSP」のチェックボックスを選択し、サーバへ送る。
2.「ViewList」内のチェックボックス「testCheckBox」(boolean型)にtrueが設定される。
※ViewListはtestActionFormのList型で、javaでもIteratorで1件づつtestActionFormを取得し、「testCheckBox」を確認している
3.上記1と同じHTMLフォームにおいて、今度はチェックボックスの選択を外して、サーバへ送る。
4.チェックを外したにも関わらず、trueの状態になってしまう。
良い対処方法があれば、ご教授をお願いします

※他のホームページで、ActionFormに下記メソッドを記述すると、チェックボックスが正常に戻ると書いてあり、試しましたがダメでした。
画面ActionForm内に、testActionFormのListを作成し、その中にチェックボックスがある場合、適用されないのでしょうか?
public void reset(ActionMapping mapping, HttpServletRequest request){
testCheckBox=false;
}

☆作成したJSP
<%-- 明細行の反復表示 start --%>
<logic:iterate name="testActionForm" id="ViewList"property="ViewList" indexId="idx">
<!-- チェックボックス 開始-->
<td nowrap >
<html:checkbox property="testCheckBox" name="ViewList" indexed="true" index="idx" />
</td>
<!-- チェックボックス 終了-->
<!-- 入力テキスト 開始-->
<td nowrap >
<html:text property="testInput" size="50" maxlength="30" name="ViewList" indexed="true" index="idx" />
</td>
<!-- 入力テキスト 終了-->
<%-- 明細行の反復表示 end --%>
</logic:iterate>

明細行のチェックボックスで、選択した状態で画面再表示時にチェックを外した場合、再度画面を表示すると外したはずのチェックが戻ってしまいます。
現象
1.下記「作成したJSP」のチェックボックスを選択し、サーバへ送る。
2.「ViewList」内のチェックボックス「testCheckBox」(boolean型)にtrueが設定される。
※ViewListはtestActionFormのList型で、javaでもIteratorで1件づつtestActionFormを取得し、「testCheckBox」を確認している
3.上記1と同じHTMLフォームにおいて、今度はチェックボックス...続きを読む

Aベストアンサー

>>resetメソッドを定義するのは、ActionFormのクラスです。
>ActionFormのクラスに下記resetメソッドを定義しています。
>public void reset(ActionMapping mapping, >HttpServletRequest request){
>testCheckBox=false;
>}

ActionFormがもっているViewListのtestActionFormについてです。
public void reset(ActionMapping mapping, HttpServletRequest request){
for(int i=0;i<viewList.size();i++){
((testActionForm)viewList.get(i)).setTestCheckBox(false);
}
}

Qstrutsで、JSP→アクションクラス→JSPの遷移ができない。

Strutsを勉強中の者です。
初心者的な質問で大変恐縮ですが、どこを調べても原因が分からなかったので、最終手段としてこちらに質問させて頂く事にしました。
どなたかご存知の方がいらっしゃいましたらご教授頂けないでしょうか。

・概要
 strutsで、JSP→クラスの実行→JSPの遷移ができない。

・環境
 WindowsXP
 Eclipse3.3
 Tomcat5.5
 GEF3.3
 struts-1.3.8
 JDK1.5

・詳細
 「Eclipseパーフェクトマニュアル ベストセレクション」
 という本をもとに勉強しています。
 ここのStrutsの例題で
 (1).簡易家計簿 <メニュー画面>(index.jsp)を表示
  (2).同画面のリンク(ShoppingInitEntry.do)をクリック
  (3).リンク(ShoppingInitEntry.do)に関連づけられているクラス(ShoppingInitEntryAction)の実行
  (4).データ入力画面(ShoppingUpdate.jsp)への遷移
 という事をやっています。
 実際に設定して、動かして見ましたが、
 Eclipseでデバッグを貼っていると(3)まで動作しているのが分かるのですが、(4)の画面まで遷移しません。
 具体的には、ShoppingInitEntry.doのリンクが
 ブラウザのアドレスバーに表示され、画面が真っ白の状態になります。
 (データ入力画面は表示されない)

 尚、直接(4)の画面(ShoppingUpdate.jsp)を開くと、
 データ入力画面がエラーも無く表示されます。

----
struts-config.xmlの設定が悪いのかと思ったのですが、
問題は無さそうに思います。(必要と思われる部分を抜粋)

<struts-config>
<global-forwards>
<forward name="ShoppingInitEntry" path="/ShoppingInitEntry.do"/>
</global-forwards>
<action-mappings>
<action path="/ShoppingInitEntry" type="MoneyBooks.ShoppingInitEntryAction" input="/index.jsp">
<forward name="success" path="/ShoppingUpdate.jsp"/>
</action>
</action-mappings>
</struts-config>
----
(3)ShoppingInitEntryActionのソースは、下記の通りです。

public class ShoppingInitEntryAction extends Action {

@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return super.execute(mapping, form, request, response);
}

}

上記のreturn super.execute( ~の部分では nullを返しているようです。
Eclipseのコンソールにメッセージは表示されません。

A.原因は、struts-config.xmlでしょうか? それともクラスがnullを返している為に画面遷移しないのでしょうか? 
  そもそもsuper.executeのソースをjadのデコンパイルで追ったのですが、返り値としてNullしか返していない状態です。
B.また、馬鹿な質問ですが、そもそもjavaではnullを返り値で返すとオール×だと思っているのですが、この考え方は正しいでしょうか? 

大変お恥ずかしい限りですが、ご存知の方がいらっしゃいましたら教えて頂きたく宜しくお願い致します。

Strutsを勉強中の者です。
初心者的な質問で大変恐縮ですが、どこを調べても原因が分からなかったので、最終手段としてこちらに質問させて頂く事にしました。
どなたかご存知の方がいらっしゃいましたらご教授頂けないでしょうか。

・概要
 strutsで、JSP→クラスの実行→JSPの遷移ができない。

・環境
 WindowsXP
 Eclipse3.3
 Tomcat5.5
 GEF3.3
 struts-1.3.8
 JDK1.5

・詳細
 「Eclipseパーフェクトマニュアル ベストセレクション」
 という本をもとに勉強しています。
 ここの...続きを読む

Aベストアンサー

A.
executeの返り値(ActionMapping)にnullを返した場合、他への転送を行いません。
<forward name="success" path="/ShoppingUpdate.jsp"/>
ここで転送先を指定しているので、
return mapping.findForward("success"); のように
『succcess』を返せばShoppingUpdate.jspに画面が遷移すると思います。

B.
オール×の意味が良く分かりませんが…返り値を受け取るメソッド次第でしょう。

Qjspのプログラムについて

jspファイルで
データベースの中のテーブルの中身をCSVファイルに出力するプログラムを教えてください。

delete文で中身を消すプログラムは書けたのですが、これはできません。
conn = null;
st=null;

conn=DriverManager.getConnection("jdbc:mysql://localhost/データベース名?" +
"user=ユーザー名&password=パスワード&useUnicode=true&characterEncoding=utf8");

st=conn.createStatement();

StringBuffer buf = new StringBuffer();
buf.append("delete from where id="+id);
st.executeUpdate(buf.toString());

これで削除はできました。
なのでbuf.appendの中身を
buf.append("SELECT from テーブル名 INTO OUTFILE "c:/data" ");
これに書き換えればできると思ったのですができません。

よろしくお願いします。

jspファイルで
データベースの中のテーブルの中身をCSVファイルに出力するプログラムを教えてください。

delete文で中身を消すプログラムは書けたのですが、これはできません。
conn = null;
st=null;

conn=DriverManager.getConnection("jdbc:mysql://localhost/データベース名?" +
"user=ユーザー名&password=パスワード&useUnicode=true&characterEncoding=utf8");

st=conn.createStatement();

StringBuffer buf = new StringBuffer();
buf.append("delete from where id="+id);
st.executeUpdate(buf.toS...続きを読む

Aベストアンサー

こんにちは。

buf.append("SELECT * from テーブル名 INTO OUTFILE \"c:/data\"");

こうではないですか?
"文字列"の中で「"」を使うのであればエスケープが必要です。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング