- PR -

strutsの出力用JSP文

投稿者投稿内容
Intellistation
常連さん
会議室デビュー日: 2007/04/17
投稿数: 24
投稿日時: 2007-04-24 12:25
サーバサイドはokです。xml、login.jsp、pass.jsp、サーブレット全て完成しており最後に名前を出す作業なのですが・・・
javaBean化したオブジェクトから値を取得する命令だけが分からず困っております
Eclipse3.2とTomcat、Oracleです
すみょし
常連さん
会議室デビュー日: 2007/01/25
投稿数: 36
投稿日時: 2007-04-24 12:48
サンプルコードとか探してないんですか?
仕事は調べることも重要ですよ?
はじくn
会議室デビュー日: 2007/04/18
投稿数: 5
投稿日時: 2007-04-24 12:51
インギさんの意見は聞いてますか?

全て完成してるなら自ずと分かるはずです。
念のためにお聞きしますが、

引用:

Intellistationさんの書き込み (2007-04-24 12:25) より:
サーバサイドはokです。xml、login.jsp、pass.jsp、サーブレット全て完成しており最後に名前を出す作業なのですが・・・
javaBean化したオブジェクトから値を取得する命令だけが分からず困っております
Eclipse3.2とTomcat、Oracleです



「何というjavaBean」の「何というフィールド」に名前が格納してあり、その名前は「何というメソッド」で取り出せるのでしょう?
Intellistation
常連さん
会議室デビュー日: 2007/04/17
投稿数: 24
投稿日時: 2007-04-24 13:41
有難うございます。さんざんサイトで調べてもう検索不可能でした。サンプルコードは沢山試しました。
現状ですが、javaBeanはLoginActionjava、Login_ok_jspに『ログインしました』、
他パスワード変更リンク、log offリンクが記載。

javaBeanには以下の文を書いております↓●●●の部分は公開出来ません


package jp.co.●●●.kadai;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Timestamp;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,HttpServletResponse response) throws Exception{

/** エラーメッセージの格納エリアの定義 */
ActionErrors errors = new ActionErrors();

/** FormBean(JSPの入力値)の取得 */
LoginForm loginForm = (LoginForm) form;
/** ユーザIDの取り出し */
String userid = loginForm.getUserid();
/** パスワードの取り出し */
String passwd = loginForm.getPasswd();

/** 接続クラスの定義 */
Connection con = null;

/** ユーザID・パスワードのチェック */
try{
/** Oracle10g JDBC ドライバロード */
Class.forName("oracle.jdbc.OracleDriver");

/** Oracle10g JDBC 接続 */
con = DriverManager.getConnection("jdbc:oracle:thin:@●●●:●●●", "●●●", "●●●");

/** SQL発行のためのStatementオブジェクト生成 */
Statement st = con.createStatement();

/** Oracle10g JDBC 問い合わせ SQL 作成 */
String sql = "select * from userinfo where userid = '" + userid + "'";
/** SQLの発行 */
ResultSet rs = st.executeQuery(sql);




/** Oracle10g JDBC レコードセットリード */
if (rs.next()) { // 読み込めた場合
/** パスワードのチェック */
if(passwd.equals(rs.getString("passwd"))){ // パスワードが一致した場合
/** ユーザ名の取り出し */
String wk_username = rs.getString("username");
/** 次のJSPで使用するためにセッションコンテキストへユーザ名をセット */
request.setAttribute("username",wk_username);
/** パスワード期限を取得 */
Timestamp ts = rs.getTimestamp("passwd_limit");
/** 現在日時取得 */
Timestamp now = new Timestamp(System.currentTimeMillis());
/** パスワード期限のチェック */
if(now.after(ts)){ // 現在日時がパスワード期限以降
/** JDBC レコードセットクローズ */
rs.close();
/** ステートメントクローズ */
st.close();
/** 接続クローズ */
con.close();
/** パスワード変更画面へ遷移 */
return mapping.findForward("st_login_ok");
}
}else{ // パスワードが一致しない場合
/** パスワードエラーメッセージの設定 */
errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.invalidatepassword"));
}
}else{ // 読み込めなかった場合
/** ユーザIDエラーメッセージの設定 */
errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.unknownuser"));
}

/** JDBC レコードセットクローズ */
rs.close();
/** ステートメントクローズ */
st.close();
}catch(Exception e){
/** 例外をクラス外へ投げる */
throw e;
}finally{
/** 接続クローズ */
con.close();
}
/** エラーメッセージのチェック */
if (!errors.isEmpty()) { // エラーメッセージが格納されている場合
/** エラーをリクエストコンテキスト域へ設定 */
saveErrors(request, errors);
/** 元の画面へ戻る */
return (mapping.findForward("st_ng"));
}

/** 次の画面に遷移する */
return mapping.findForward("st_login_ok");
}
}





山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-04-24 14:13
Struts のサンプルで bean:write を使ったものがあると思います。
検索する必要はありません。Strutsに付属しています。
まずはそれを動かしてみましょう。
「javaBean化したオブジェクトから値を取得する」方法が分かります。
うまく動いたら自分のアプリケーションと何が違うのか比べてみましょう。

[ メッセージ編集済み 編集者: インギ 編集日時 2007-04-24 14:14 ]
Intellistation
常連さん
会議室デビュー日: 2007/04/17
投稿数: 24
投稿日時: 2007-04-24 14:22
strutsのフォルダがありません/~~~
プラグインです。

今最初のログイン画面に目を通して見ました。
以下の分にするとコンソールにエラーが出ます
exception

org.apache.jasper.JasperException: nullオブジェクトにBean操作をおこなおうとしました


<html:html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"/>
<title></title>
</head>
<body>
<html:errors/>
ユーザID: <jsp:getProperty name="userid"
property="userid" /> <br>
ユーザ名: <jsp:getProperty name="username"
property="username" /> <br>
<html:submit>送信</html:submit>
</html:form>
</body>
</html:html>

propertyには何を入れれば良いのでしょうか??
ミソジマエ
常連さん
会議室デビュー日: 2005/09/25
投稿数: 43
投稿日時: 2007-04-24 14:32
引用:

Intellistationさんの書き込み (2007-04-24 13:41) より:
有難うございます。さんざんサイトで調べてもう検索不可能でした。サンプルコードは沢山試しました。


散々調べたサイトの中には、ここはありませんでしたか?
http://www.javaroad.jp/opensource/js_struts2.htm
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-04-24 14:42
Sturts のサンプルを動かしたことがないということですね?
ではこちら↓からダウンロードして動かしてみてはいかがでしょう?
http://struts.apache.org/download.cgi#struts138

bean:write を使ったサンプルがあると思います。
「javaBean化したオブジェクトから値を取得する」方法が分かります。
うまく動いたら自分のアプリケーションと何が違うのか比べてみましょう。

目の前の動作不良を取り除くことではなく、体系的に物事を学ぶこと、検索する方法などにフォーカス
すると何かとスムースになりますよ。

プログラムというのは細かい動作の組み合わせになります。
JDBC を使ったコードが提示されていますが、このコードは今回の現象と関係がありますか?
関係するのであれば「データベースからユーザ名を取得することができない」ことが問題です。
Struts は関係なさそうです。
関係ないのであれば、JDBC 周りのコードを提示することで逆にこのスレッドを見る人を混乱さ
せてしまうかもしれません。

なんだかまとまりありませんが・・、個人的に思ったことを書き連ねてみました。

[ メッセージ編集済み 編集者: インギ 編集日時 2007-04-24 14:48 ]

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