ネットが遅くてイライラしてない!?

お世話になります。
strutsを使用しlogin画面を作成し、エラーならエラーメッセージを表示させ、成功なら次のページに遷移するようにしたいのですが、
その際のstruts-config.xmlの設定がわかりません。
login画面を以下のように設定(login.jsp)
<%@ page language="java" contentType="text/html; charset=windows-31j"
pageEncoding="windows-31j"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<html:html>
<head>
<title>ログイン画面</title>
</head>
<body>
<html:errors/>
<html:form action="/login" method="post">
ユーザID : <html:text property="id"/><br>
パスワード: <html:password property="password"/><br>
<html:submit value="ログイン"/>
</html:form>
</body>
</html:html>
</html>

struts-config.xml
<form-beans>
<!-- sample form bean descriptor for an ActionForm
<form-bean
name="LoginForm"   //jspのform actionで渡すデータ
type="org.apache.struts.validator.DynaValidatorForm"/>
end sample -->

<!-- sample form bean descriptor for a DynaActionForm
<form-property    
name="userid" //jsp画面のproperty指定時に渡す
type="java.lang.String"/>
<form-property
name="password" //passwordのとき
type="java.lang.String"/>
</form-bean>
end sample -->
</form-beans>
     //actionで渡すデータの定義1
<action
path="/Login"   //actionで渡すデータ
type="org.apache.struts.actions.LoginAction"
parameter="/pages/Input.jsp"/>
//actionで渡すデータの定義2
<action
path="/InputSubmit"
type="app.InputAction"
name="inputForm"
scope="request"
validate="true"
input="/pages/Input.jsp"/>
//actionで渡す定義3
<action
path="/edit*"
type="app.Edit{1}Action"
name="inputForm"
scope="request"
validate="true"
input="/pages/Edit{1}.jsp"/>

end samples -->
</action-mappings>
の箇所を変更するのはわかるのですが、どう変更したらいいかがわかりません。

ログイン成功時画面(loginSuccess.jsp)
<%@ page language="java" contentType="text/html; charset=windows-31j"
pageEncoding="windows-31j"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%@ taglib uri="/tags/struts-html" prefix="html" %>

LoginSuccess!!
<html:form action="/nextpage" method="post">
<html:submit value="次のページ"/>
</html:form>
</html>
と設定してます。
javaクラスの設定も関係あるのですが、今回は省略してます
。今回したいのはlogin.jsp画面を表示させたいのですが、
その際以下のエラーがでます。
org.apache.jasper.JasperException: An exception occurred processing JSP page /pages/login.jsp at line 19

16: </head>
17: <body>
18: <html:errors/>
19: <html:form action="/login" method="post">
20: ユーザID : <html:text property="id"/><br>
21: パスワード: <html:password property="password"/><br>
22: <html:submit value="ログイン"/>
よろしくお願いします。

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

A 回答 (2件)

ケアレスミスだと思いますが



type="hoge/hoge.LoginAction"

ここの書き方がおかしいです。

あと、

dynamic="LoginForm"

form-beanのdynamic属性はtrue以外の値を入れる例がありましたか?

エラーメッセージからどのような原因を類推するかは参考URLを見て自己学習してください。

参考URL:http://grape.sapid.org/tutorial/lec1.html

この回答への補足

回答ありがとうございます。
お教えいただいたURL参考にさせていただきました。
それでですが、実際に作成時以下のようなエラーが出たのですがこの原因はstruts-config.xmlの中で
<action-mapping>
<action
  path="login"/
type="/"    ここの記述に問題があり先に進めない
~~~~~~~~/>
</action-mapping>

<form-beanns>
<form-bean
path=""
type="/" ここの記述に問題があり先に進めない
~~~~~~~~~~~~~/>
</form-beans>
内で定義されている箇所にデータがないということなのでしょうか?

エラーメッセージ:
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: ActionMappingsまたはActionFormBeansコレクションが見つかりません

以上よろしくお願いします。

補足日時:2007/10/11 14:59
    • good
    • 0
この回答へのお礼

遅くなり申し訳ありません。
あのあと、いろいろ試したところ無事問題は解決しました。
理由はわからないのですが。

回答ありがとうございました。
また、質問することがあるのでその時はよろしくお願いします。
ありがとうございました。

お礼日時:2008/01/20 00:42

struts-configでは "/Login"


jspでは "/login"
となっていますが、アクションパスは大文字小文字区別されます。
そこが原因ではないでしょうか。

この回答への補足

回答ありがとうございます。
ご指摘のように直したところ以下のエラーが出ました。
org.apache.jasper.JasperException: An exception occurred processing JSP page /pages/login.jsp at line 16

13: </head>
14: <body>
15: <html:errors/>
16: <html:form action="/login" method="post">
17: ユーザID : <html:text property="id"></html:text><br>
18: パスワード: <html:password property="password"></html:password><br>
19: <html:submit value="ログイン"></html:submit>
原因
javax.servlet.ServletException: javax.servlet.jsp.JspException: アクション /login のフォームbean null に対する定義が見つかりません
このとき直した箇所として
struts-config.xmlの
form-bean内のform-propertyの前に以下を付け足し
   <form-bean
dynamic="LoginForm"
name="loginForm"type="org.apache.struts.action.DynaActionForm">
<form-property name="id" type="java.lang.String"/>
<form-property name="password"  
type="java.lang.String"/>
</form-bean>
action-mappingは以下を設定
<action-mappings>
<!-- Default "Welcome" action -->
<!-- Forwards to Welcome.jsp -->

<action path="/login"
name="loginForm"
type="hoge/hoge.LoginAction"
input="/pages/login.jsp" validate="true">
<forward name="success" path="/pages/loginsuccess.jsp" />
<forward name="error" path="/pages/loginerror.jsp" />
</action>
- sample input and input submit actions

<action
path="/login"
type="org.apache.struts.actions.LoginAction"
parameter="/pages/Input.jsp"/>

LoginAction.javaには以下のソースを定義
package hoge;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;

public class LoginAction extends Action {

public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {

//DynaFormからメッセージを取得
DynaActionForm df = (DynaActionForm)form;
String id = (String)df.get("id");
String password = (String)df.get("password");
System.out.println("id=" + id + " password=" + password);

//IDが"foo"、Passwordが"bar"の場合認証成功

if(id.equals("foo") && password.equals("bar")){
// セッションを開始します
HttpSession session = request.getSession(true);
// セッションに情報を設定します
session.setAttribute("id" , id);

return mapping.findForward("success");
}else{

return mapping.findForward("error");
}
}
}
validate.xmlには以下を設定
<formset>
<!-- ログイン画面(loginForm)のvalidation -->
<form name="loginForm">
<!-- loginForm.id -->
<field property="id" depends="required,maxlength">
<arg0 key="ユーザID" resource="false" />
<arg1 name="maxlength" key="${var:maxlength}" resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>16</var-value>
</var>
</field>

<!-- loginForm.password -->
<field property="password" depends="required,maxlength">
<arg0 key="パスワード" resource="false" />
<arg1 name="maxlength" key="${var:maxlength}" resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>8</var-value>
</var>
</field>
</form>
</formset>
を設定してます。
よろしくお願いします。

補足日時:2007/10/09 18:23
    • good
    • 0

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

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

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

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

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

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\"");

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

QStruts:フレーム内JSPからcssファイルの参照方法

htmlタグライブラリのframeで指定したJSPからスタイルシート(*.jsも)の参照ができません。
色々試したのですが、解決方法を教えて下さい。。。
環境はWin2000、Tomcat5、Struts2です。

↓フレーム呼び出し
<frameset rows="50%,*">
<html:frame page="A.jsp"/>
<html:frame page="B.jsp"/>
</frameset>
※ディレクトリ:/apname/jsp/X.jsp

↓フレーム内(A.jsp)
<link rel="stylesheet" href="./C.css" type="text/css"/>
※ディレクトリ:/apname/css/C.jsp

ちなみに「href="../css/C.css"」としてもダメなんです。
参照先ディレクトリは色々試したけど使えません。

よろしくお願いします。

Aベストアンサー

No.1 の方が回答してくれているが別の回答を。

Struts を使用しているのならば、CSS などへのリンクは html:rewrite で書いた方がやりやすいと思う。
今回の構成では以下のように書きます。

<link rel="stylesheet" href="<html:rewrite page="css/C.css"/>" type="text/css"/>

このように書くと、クライアントでは以下のようなサーバ相対になっています。

<link rel="stylesheet" href="/apname/css/C.css" type="text/css"/>

JSP のタグ解析は HTML のタグとは別に行われるので、上記のように HTML の属性の中に JSP タグを書いても正常に処理されます。

CSS などは、JSP と別フォルダに入れることが多いために相対パスで書いていると JSP ファイルを移動したくなったときに面倒になります。
また、Struts の場合、JSP がおいてある場所と実際の URL の位置関係がアクションの実装の仕方などによっては一致しなくなりますので、「JSP ファイルから見ての相対パス」では正常に解決できなくなることがあります。
このため、サーバ相対に書き直してくれる html:rewrite を使用した方が無難だと思います。

参考URL:http://tag.main.jp/htmlrewrite.html

No.1 の方が回答してくれているが別の回答を。

Struts を使用しているのならば、CSS などへのリンクは html:rewrite で書いた方がやりやすいと思う。
今回の構成では以下のように書きます。

<link rel="stylesheet" href="<html:rewrite page="css/C.css"/>" type="text/css"/>

このように書くと、クライアントでは以下のようなサーバ相対になっています。

<link rel="stylesheet" href="/apname/css/C.css" type="text/css"/>

JSP のタグ解析は HTML のタグとは別に行われるので、上記のように H...続きを読む

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

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404

QJSPの処理の途中で、JavaScriptの処理をしたい

プログラムをJSPで記述している(<% %>タグ)のですが、
JavaScriptのalertやconfirmなどのポップアップするダイアログを
表示したいのです。それは可能なのでしょうか?

Aベストアンサー

No.2の回答に対する回答(変な日本語ですが)です。

JSPとJavaScriptの処理の行われる順番について考えていないと
エラーになることがありますよ。
大まかな流れは、
 JSPのソースをサーバ側で解釈、実行する(HTMLのソースを吐き出す)
  ↓
 クライアントに生成したソースを送信する
  ↓
 クライアント側のブラウザがソースを解釈する
  ↓
 ソースの中のJavaScriptを、ソースの上のほうから順次実行する
  ↓
 同時に、通常の表示(HTMLの解釈)も実行される

 と、こういう流れですので、例えば、JavaScriptで値を入力し、
JSPでその値を使おうとすると、エラーとなります。

 具体的にやりたいこと(やろうとしていること)を書いていただいたほうが
適切に回答できますが、上記が今考えられるエラーの原因です。

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) {

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

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);
}
}

QJava-jspの画面入力値保持について

画面にテキスト、ラジオボタン、リストボックス とボタンがあります。
ボタンを押すと、JAVAで処理を行い、jspのviewで表示します。

1.テキスト、ラジオボタン、リストボックスなどに値が入力、設定されている状態で
ボタンを押して処理後にテキスト、ラジオボタン、リストボックスの値が
変わらないようにしたいのですが、
その場合、たとえば、入力、設定値をセッションになどに格納しておき
jspの所で、セッションから値を設定すると言うような方法になるのでしょうか?

2.ボタン押して処理後、ラジオボタン、リストボックスの選択値も
  変えないようにしたいのですが、
  これはどのように実現するのが、適切なのでしょうか?


以上、よろしくお願いします。

Aベストアンサー

ボタンというのはフォームのサブミットボタンのことですよ?
つまり、画面遷移が起きることを前提とすると(元の同じ画面に戻るのも含みます)

テキスト、ラジオボタン、リストボックスの状態を「要求パラメータ」として
送信し、それを次画面に反映するというのが最も一般的な方法です。

フレームワーク struts のアクションフォーム&JSPカスタムタグを使うと比較的楽に
そういう画面が作れますが、多くのフレームワークでも大差ありません。
簡単な画面なら素のサーブレート+JSPでも十分作れます。

セッションでもできますが、 セッションはログイン情報などの保持など、
限定された範囲で使うのが普通です。また、結局セッションに最新の
テキスト、ラジオボタン、リストボックスの状態を送るには、「要求パラメータ」
を送信する必要があります。

AJAXを使うという方法もあります。この場合、ボタンは AJAX 処理だけを行い
画面遷移を起こさないので、サーバ側で画面のテキスト、ラジオボタン、
リストボックスの状態をもつ必要はありません。

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...続きを読む

Q日付型カラムへのデータINSERT

お世話になります。ひとつご教授ください。

オラクル10g, ojdbc14でjdk1.4.2から接続です。

INSERT命令を使ってテーブルにレコードを追加する際に、DATE型のカラムに対して

INSERT TABLE_A (DATE1, ...) VALUES ('2006-4-27 12:00:00', ...);

を実行するとエラーORA-01861が出ます。そこで

INSERT TABLE_A (DATE1, ...) VALUES ('2006-4-27', ...);

このように記述して再度実行すると通ります。

このようなとき、時間の部分まで設定した値をカラムに格納したいときはどうしたらよろしいでしょうか?

よろしくお願いします。

Aベストアンサー

ごめんなさい。
説明と文例が違ってしまいました。
正しくはこちらです。

INSERT TABLE_A (DATE1, ...) VALUES (to_date('2006-4-27 12:00:00','yyyy/mm/dd hh24:mi:ss'), ...);
というように、to_date関数を使うのが一般的かと思います。


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

人気Q&Aランキング