トップページphp
982コメント329KB

フレームワークStrutsをいじくり倒す人の為のスレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/04/28 08:14ID:Ub0n1fGR
 流行っているのか、流行っていないのか謎の Struts を語るスレです。
http://www.ingrid.org/jajakarta/struts/
http://jakarta.apache.org/struts/
0336nobodyさん04/03/11 23:27ID:???
>>335
レイヤが違うもので限界を感じるっていわれても意味が分からん。
ORマッパーをどれかひとつと言われたら Hibernate。 間違いない。
0337nobodyさん04/03/12 03:25ID:5qVN4VSs
>>335 機能だけなら Servlet で全て足りている気がしなくもない。コード量が膨大になるだけ。
>>336 Hibernate を熱く語っているね。
0338nobodyさん04/03/12 20:49ID:???
>>336
EJBといえばO/Rしか思いつかんのか?
0339nobodyさん04/03/12 23:04ID:???
>>338
あと EJB といえば過去の遺物かな。
0340nobodyさん04/03/13 20:05ID:OCTfOcMT
<html:link>を使ってform(ActionForm)のsubmitって出来るんでしょうか?
0341nobodyさん04/03/13 20:57ID:1bZkOokW
>>340
フォーム名は分かるから、JavaScriptでonclickでイベントを拾えばどうにかなるかも。
やるべきではないと思うけどね。
0342nobodyさん04/03/13 21:23ID:OCTfOcMT
今こんな感じなんですけど、formの中が空なんですよね…
<html:link action="/add" onclick='document.forms["turnover"].submit();'>[ADD]</html:link>
0343nobodyさん04/03/13 22:15ID:???
カスタムタグの中に変数って使えない?(もしくはスクリプトレット)
<html:checkbox name="..." property="..." disabled="${変数}" />
みたいな。
resinでは使えたけどweblogicでは使えなかった。
0344nobodyさん04/03/13 22:33ID:???
スクリプトレットなら使えるよ
0345nobodyさん04/03/13 23:15ID:OCTfOcMT
スクリプトは使えると思うけど、どうやってformをsubmitするんでしょう?
0346nobodyさん04/03/19 03:27ID:???
JavaScriptでフォーム送信するなら、
<html:link>つかう必要ないだろ
<A>で良いだろ
0347nobodyさん04/03/19 21:20ID:???
そんな本当のこと言ったらhtmlタグはほとんどいらんぞ。
0348nobodyさん04/03/20 05:19ID:???
一番いらないのは<html:html>ではないかとw
0349nobodyさん04/03/20 11:15ID:???
beanやlogicは便利だけど、htmlは本気で意味不明
0350nobodyさん04/03/20 14:14ID:???
<html:form>も必要ない?
0351nobodyさん04/03/20 14:41ID:???
>>348
国際化アプリで必要
0352nobodyさん04/03/20 14:41ID:???
そんなこと言ったらStrutsなんていらんぞ
0353nobodyさん04/05/15 13:04ID:iT9NId+G
Struts、確かに便利ではあるがページフローの制御がいまいちよくわからんですよ。
セッションオブジェクト使用不可な条件なんですが、これって自縄自縛っぽい状態なのか?
0354nobodyさん04/05/15 13:29ID:???
え?
その制御を楽にするためのStrutsじゃないの?
あとそれとセッションオブジェクト使用不可な条件と何が関係あるの?
0355nobodyさん04/05/15 22:18ID:???
セッションを使えないという仕様なのか?
Strutsは確か、セッションを使用しないとダメじゃなかったか?
0356tommy04/05/17 10:43ID:UlYZTV/R
strutsを使ったショッピングカートのサンプルが置いてあるサイト
あったら教えてもらえませんか?
0357nobodyさん04/05/17 20:46ID:???
なか見てないので知らないけど、説明だけ読んだらこれそうみたい。

http://sourceforge.net/project/showfiles.php?group_id=49385&package_id=80917
0358nobodyさん04/05/29 04:18ID:???
なぁ、submitボタンのvalueってつかうのか?
それも2バイト文字を参照して内部動作を分岐させているよう
なのだが・・・。
Strutsではそれが普通なのか?まったく解せないでつよ(困惑
0359nobodyさん04/05/29 11:42ID:???
は?
0360nobodyさん04/05/29 17:51ID:???
>>358
おまいの見ているソースがクソなだけ。
0361nobodyさん04/05/29 21:45ID:???
>>360 はStrutsのソースがクソと言いたいわけか・・・
>>358 Struts作ったやつらははじめ2バイト文字のことなんか
考えてなかったのだが後になってあわてて2バイト対応したためと思われ。
0362nobodyさん04/05/30 17:21ID:???
>>361
あ、Struts のソースの話か… 
0363nobodyさん04/05/31 00:23ID:???
>>362
いや、Strutsのソースじゃないよ。
>>360
ありがとう、やっぱあのSEはクソだわ。
0364nobodyさん04/05/31 23:10ID:???
それって、複数あるsubmitボタンのどのボタンを押したかを判定してるのか?
strutsでそんな機能があったはずだが。
0365nobodyさん04/05/31 23:18ID:???
>>363
Struts の org.apache.struts.actions.LookupDispatchAction の話じゃないのか?
0366nobodyさん04/06/11 14:14ID:pbSttBHh
質問させてください。
Struts1.1でValidatorを使ってるんですが、
JSPで1つのacitonの中に更新ボタン、クリアボタン、戻るボタンがあります。
更新ボタンが押されたときはValidatorで入力チェックを行い、
他のボタンが押された場合はValidatorが効かないようにしたいのです。

今後携帯にも展開する予定なのでJavaScriptは極力避ける方針なのですが、
どのようにすればよろしいでしょうか?

actionを分ける事も考えたのですが、改行されていまうため、悩んでいます。
0367nobodyさん04/06/11 14:20ID:???
>>366
html:cancel
0368nobodyさん04/06/11 14:24ID:???
>>367
本当だっ!ありがとうございます!!
助かりました(^^
036936604/06/11 15:52ID:???
html:cancelに関して、もう1つ質問させてください。
propertyに値を指定するとValidatorを回避できないようですが、
1つのaction内にhtml:cancelを複数設置して、actionクラス側で判定する事は可能ですか?
037036604/06/11 15:54ID:pbSttBHh
例えば「クリアボタン」と「戻るボタン」を設置したい場合などです。
0371nobodyさん04/06/11 16:00ID:???
>>369
org.apache.struts.actions.LookupDispatchAction
037236604/06/11 17:57ID:pbSttBHh
>>371
ありがとうございます。
試してみますm(_ _)m
0373nobodyさん04/06/11 19:11ID:???
>>367 >>371かっこえぇ。惚れた。
0374nobodyさん04/06/12 14:35ID:???
すぐ上>>365で話題になってるんだけどな
0375nobodyさん04/06/13 00:03ID:???
struts-facesってうごかんじゃないかー
0376nobodyさん04/06/16 23:51ID:zsyyEODZ
質問なのですが、検索結果を、strutsの<logic:iterate>タグを使用してJSPに表示しています。

そこで、例えば検索結果が100件あったとして、そこから30件ごとに分け、googleのように次の〜件
とするには、どうすればいいでしょうか?
iterateでlengthの値を30にしても、30件しか、もちろん表示されません。

いったい、どうすればいいのかわからないです。
難しいですが、分かる方は、ぜひ教えて欲しいです・・・・・・。
0377nobodyさん04/06/17 00:11ID:???
>>376
>iterateでlengthの値を30にしても、30件しか、もちろん表示されません。
30件ごとに分けたいんだろう。なのに
>30件しか、もちろん表示されません。
というのはおかしい。
言いたいことはわからないでもないが、人にものを伝えるときはもっと気を遣え。ばか。
offsetつかってスタート地点を決めればいいだろが馬鹿莫迦バヵ
037837604/06/17 00:28ID:jy0PTqdk
>>377
マジツッコミ、サンクスです。

offsetでスタート決めるのはわかりますが、offsetの値を動的に変えるにはどうしたらいいでしょうか?

あと、submitで「次の30件を表示」などを用意して、遷移先を、検索結果が表示されてる、今いるこの画面に
次の30件を表示する方法がわからないです・・・。

説明下手でスマソなのですが、宜しくお願いします〜・・。
0379nobodyさん04/06/17 12:37ID:???
>>378
logic:iterateタグの説明をよく読みましょう。
ttp://jakarta.apache.org/struts/userGuide/struts-logic.html#iterate
ポイントはoffsetに指定するのはInteger型のJSP Beanということ。

ちなみに、ドトネトにはDataGridコントロールがあるので、
この辺はすごく楽だねえ・・・。


ところで、普通の画面は作れるの?まずはそこから始めた方が・・・。
0380nobodyさん04/06/17 20:07ID:???
こんなのもあります。
http://jsptags.com/tags/navigation/pager/index.jsp
0381nobodyさん04/06/17 22:49ID:???
>>379
ドトネトでなくても、ADOなんかだとページ単位で切り分けるの簡単だよな。
こーいうの標準で用意してくれりゃいいのにね。

>>380
面白いね
0382nobodyさん04/06/18 02:59ID:???
>>380
なるほど。面白そうだね。
038337604/06/19 01:47ID:2EKqNUkj
だめだ・・。やっぱりできない。
JSPBeanがわかんない・・、javaBeanとは違うの?
Beanの値をoffsetにいれても,、次の30件表示のリンクを押してoffの値を、変化させる方法がわかんないです・・。

Servletでもいいので、いいサンプル載ってる所ありませんかね?
ぶっちゃけ、Servretでも、できない・・・。
0384nobodyさん04/06/19 18:32ID:pMTsomP7
>>387
ぶっちゃけなんでもいいんだよ。数字(で構成された文字列)が返ればね。

offset="<%=anyBean.getOffset().toString()%>"
でも
offset="<%=anyIntegerInstance%>"
でも
offset="<%=anyIntegerInstance.toString()%>"
0385nobodyさん04/06/19 18:35ID:pMTsomP7
なんか化けたので再送

offset="<%= anyBean.getOffset().toString() %>"
でも
offset="<%= anyIntegerInstance %>"
でも
offset="<%= anyIntegerInstance.toString() %>"
でも
0386nobodyさん04/06/20 00:26ID:???
>>383には才能がない。

Javaの才能とかそういうんではなく、勉強する才能がない。
0387nobodyさん04/06/20 09:32ID:pwr2yWDM
>>383
素直にあきらめた方が賢明かも、、、。まあ、ヒントだけあげるよ。
「次の30件表示のリンクを押してoffの値を、変化させる」には、
どうしたらいいかを考えよう。

まず、「次の30件表示のリンクを押し」たことをサーバ側に伝える必要がある。
まあ、これは「次の30件表示」を行うアクションがあれば
それを呼び出すだけだからできるよね。
ここでつまづいているなら、Hello.worldからやり直し。
で、「次の30件表示」を行うには、まず今どこにいるかを
知ってないといけないよね。現在位置を知っていて、
はじめて「現在位置 + 30」という処理ができる。
で、現在位置を何で管理しようかという話になる。
独自のBeanを定義した方が何かと便利だけど、
まずはIntegerでもいいよ。先頭から始まるから、初期値は0だよね。

何で管理するかは決まったけど、このオブジェクトを
セッションに結びつけないと、毎回新しいオブジェクトを作成してしまって、
ちっともページが進まないということなってしまうよ。
おそらくつまづいてるのはここだよね。
ここがわからないなら、Tomcatについてる簡単なサンプルで
セッションの使い方を勉強するのがいいよ。

基本的なやり方は最初のページが表示されたタイミングで、
新しいオブジェクトをセッションに結びつける。
「次の30件表示」が押されたら、結びつけてあるオブジェクトを+30する。
この数値を利用して、一覧を再表示する。こんなところかな。
0388nobodyさん04/06/20 11:19ID:???
コピペかと思ったぜ。
だけど、>>383みたいなのがいるから、全体的なプログラマーのレベルが
低くなるんだよな。
がんばっているというのは良いことだけど、まず本を買え、と言いたい。
0389nobodyさん04/06/20 11:38ID:???
「次へボタン」を押したら現在のoffset+30送ればいいだけなのに、何をやってんのこいつは?
039038304/06/20 14:30ID:anBuFkfy
みなさん、アホな俺にいろいろと、ありがとうございました。
今一度、セッションから、勉強し直すことにします。
>>384
>>387
お二人とも、ありがとうございました!!
参考になりましたです。
0391単純形04/06/20 21:24ID:???
ShowList.java:
public class ProductInputAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
HttpSession session=request.getSession(true);
session.setAttribute("offset",new Integer(0));
return mapping.findForward("showList");
}
}

NextPage.java:
public class ProductInputAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
HttpSession session=request.getSession(true);
Integer offset=(Integer)session.getAttribute("offset");
if(offset==null)session.setAttribute("offset",new Integer(0));
else session.setAttribute("offset",new Integer(offset.intVale+30));
return mapping.findForward("showList");
}
}

List.jsp
...
<bean:define id="offset" name="offset" scope="session" />
<logic:iterate id="item" name="lists" offset="<%= offset %>"....
...
0392nobodyさん04/06/20 21:41ID:???
>>391
普通はこんな単純にはしないけどね

・全体件数を越えてページ繰りするのを防ぐ
・表示件数を変更できるようにする
・巻き戻しやページ指定ジャンプに対応する
....

というような理由から独自クラスを定義してそれを呼び出すのが普通。
0393nobodyさん04/06/20 21:51ID:???
>独自クラスを定義してそれを呼び出すのが普通。

…は?
どうやるかなんか人それぞれだろ?
0394nobodyさん04/06/20 22:33ID:???
>>393
人それぞれというのは同意するけどそこにセンスが表れるんだよ
それぞれ違ったものが同じレベルのわけねーだろ?
0395nobodyさん04/06/20 23:37ID:???
独自クラスなんかイランよ。
規模にもよるが、全件Listに持ってる時点で疑問に感じるけどね
数万件ヒットしたらどーすんのよ。

基本的に現在位置と表示件数さえ持ってれば済む話だろ。
0396nobodyさん04/06/21 00:48ID:???
は?
独自クラス=全件リストしか思い浮かばないのか?
独自クラスがあれば、インターフェースを整理できるんだよ

bean.init()
bean.prevPage()
bean.nextPage()
bean.jumpPage(int page)
bean.changeLineCount(int count)
bean.getPageCount()
....
0397nobodyさん04/06/21 01:08ID:???
結局、offsetなんかを動的にパラメータとして渡すことができないと悩んでいるんだろ?
見当違いな問答してんなよ。
0398nobodyさん04/06/29 22:57ID:???
お〜い、ム板のストラシスレが大変なことに
0399nobodyさん04/07/01 00:33ID:???
>>398
てかスレ終わっちゃったし。次スレはどうなるのだろう・・・。
0400nobodyさん04/07/01 00:35ID:???
これぽい
エクリプス+Struts開発
http://pc5.2ch.net/test/read.cgi/tech/1086356759/
0401nobodyさん04/07/03 03:26ID:???
>>400
そこなのか?? まあ、そこでレスがどんどんつくならいいけど。
0402nobodyさん04/07/03 09:06ID:lwtie6Ml
質問2つお願いします。

1.Opera7.23をクライアントに使うとセッションIDをURL Rewriting
する状態にならないとセッションの特定ができなくなってしまう
らしく、強制的にセッションIDをGETにする方法教えてください。

2.Action経由でBeanで初期値を設定した<html:text>などの入力
フォームを<html:submit>で送信するときに、この画面を表示したま
ま放置してセッションが破棄された後で送信すると、java.lang.
NullpointerExceptionが出るのが、Global Exception の設定で
キャッチするように設定しても捕まえられないので、捕まえる設
定などありましたら教えてください。
==今の設定==
<global-exceptions>
<exception handler="com.hoge.test.exception.SystemExceptionHandler"
key="errors.deadline" path="/WEB-INF/pages/syserror.jsp" type="java.lang.NullPointerException"/>
</global-exceptions>
0403nobodyさん04/07/03 13:45ID:???
>>402
Filter使って、セッションをチェックするのはどうかな?
俺も、今から実装しないといけない・・・
0404nobodyさん04/07/04 00:52ID:B3Fr8XMm
>>398
テンプレートはどこにある?
0405nobodyさん04/07/04 01:02ID:B3Fr8XMm
テンプレートはこれでいいだろうか?



Apache Strutsフレームワークについて語るスレ

△△もまいら漏れにStrutsの良さを教えてください
http://pc5.2ch.net/test/read.cgi/tech/1048030962/
△△つづいて漏れにStrutsの良さを教えてくだっさい
http://pc5.2ch.net/test/read.cgi/tech/1068207164/
   
0406nobodyさん04/07/04 01:10ID:B3Fr8XMm
ム板にStrutsスレを立てた 

△△さらにStrutsの良さを教えて下さいSession3
http://pc5.2ch.net/test/read.cgi/tech/1088870989/
0407nobodyさん04/07/24 23:55ID:QLmLFMYl
Tiles使うとNullPointerExceptionでるんだけど、なぜでるのかわかんない。。

stackTrace---
java.lang.NullPointerException
at org.apache.struts.taglib.tiles.InsertTag.processAttribute(InsertTag.java:689)
at org.apache.struts.taglib.tiles.InsertTag.createTagHandler(InsertTag.java:489)
at org.apache.struts.taglib.tiles.InsertTag.doStartTag(InsertTag.java:451)
at org.apache.jsp.aa_jsp._jspx_meth_tiles_insert_0(aa_jsp.java:118)
at org.apache.jsp.aa_jsp._jspService(aa_jsp.java:85)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)

aa.jspがtilesのtaglib使ってるJSPです。
tilesのxml----
<tiles-definitions>
<definition name="test" path="/jsp/aa.jsp">
<put name="xxxTest" value="/jsp/bb.jsp"/>
</definition>
</tiles-definitions>
bb.jspはtestとか書かれてるだけです。
0408続き04/07/24 23:56ID:???
struts-config.xmlのplugin定義----
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/conf/tiles-defs.xml"/>
<set-property property="moduleAware"value="true"/>
</plug-in>

aa.jsp----
<%@ page contentType="text/html; charset=MS932" %>
<%@ taglib uri="/WEB-INF/taglib/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/taglib/struts-tiles.tld" prefix="tiles" %>
<html:html>
<body>
<tiles:insert attribute="xxxTest"/>
</body>
</html:html>

web.xml----
<taglib>
<taglib-uri>/WEB-INF/taglib/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/taglib/struts-tiles.tld</taglib-location>
</taglib>
pageContextから値がとれてないようなんだけど、なぜ取れないのかがわからないです。。
0409nobodyさん04/07/25 01:43ID:???
>>407
念のため確認。
まさかブラウザから aa.jsp をリクエストしてないだろうな????
041040704/07/25 01:45ID:???
>409
うん。してない。Action通してaa.jsp呼んでるよ。
0411nobodyさん04/07/25 01:52ID:???
>>410
それじゃダメ。
0412nobodyさん04/07/25 01:55ID:???
たとえば、aaa.jsp 作ってそっちを呼ぶ。内容は↓

<%@ page contentType="text/html; charset=MS932" %>
<%@ taglib uri="/WEB-INF/taglib/struts-tiles.tld" prefix="tiles" %>
<tiles:insert definition="test" flush="true" />

として、Tiles設定ファイルで定義した"test"という定義を呼ばないとダメ。
041340704/07/25 01:55ID:???
どーだめなの?
0414nobodyさん04/07/25 01:57ID:???
>>413
412に書いたとおり。
0415nobodyさん04/07/25 01:59ID:???
または、
<action path="/xxx"
type="xxxAction"
name="xxxForm"
scope="request">
<forward name="xyz" path="test" />
</action>

<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" />

Struts設定ファイルのcontroller タグでRequestProcessorにTilesRequestProcessorを
使うように指定してあれば、forwardタグのpath属性にTiles定義名を指定できる。
0416nobodyさん04/07/25 02:03ID:???
そうすると、
aaa.jsp内にaa.jspとbb.jspがでてくるような状態になるの?
なんかaaa.jspが無駄のように感じるけど・・。
041740704/07/25 02:05ID:???
>415
おぉそういうこと!
それでいけそうだ。
ありがとう。
0418nobodyさん04/07/25 12:03ID:???
質問させてください。

Strutsで、ボタンをクリックしたら繊維するようにしてるのですが、
その際、一部で空白のページが表示されてしまいます。
開発の中でこのような症状に出会った人いらっしゃいませんか?
もう3日悩んでます(´・ω・`)

知り合い曰く、「フォワード先が見つからないとそうなる」と言われたのですが
JSPで<html:submit property="xxx" />として、
struts-config.xmlで、<action ・・・><forward name="xxx" path="/xxx.html" /></action>
Actionクラスで、return mapping.findforward("xxx")
となっていることは何度も確かめたのですが・・・
0419nobodyさん04/07/25 15:48ID:???
mapping.findforward("xxx") の xxx はどれを指しているのか。

<html:submit property="xxx" />
<forward name="xxx" path="/xxx.html" />
と 3 つ xxx が出てくるけど
042041804/07/25 18:49ID:???
>>419
すいません、ゴチャゴチャにならないように同じ名前付けてるんです(;´Д`)
別の名前をつけるとしたら↓のような感じになるとおもいます。

[JSP]
 <submit value="次へ" property="nextpage" />

[Action]
 if( form.getNextpage() != null ) {
  //・・・・・色々処理
  return mapping.findForward("next");
 }

[struts-config.xml]
 <action ・・・><forward name="next" path="/sample.html" /></action>

JSPの方に問題があるかわからなかったので、ここではデバッグ用に普通のHTMLファイルにフォワードしています。
0421nobodyさん04/07/25 19:05ID:???
<action ・・・>が違ってたらいみねーな
0422nobodyさん04/07/25 21:21ID:???
一部で空白ページって事は、form.getNextpage()がnullなんじゃねえのか。
042341804/07/26 21:57ID:???
すいません、解決しました。

サーバ管理者がStruts1.0を入れていたのが原因でした。
私はexecute()メソッドを実装していたので
perform()メソッドに書き換えたら無事動きました。

このようなアホな質問にも真摯に答えてくださった419さん,421さん,422さん
本当にありがとうございました。
0424nobodyさん04/07/26 22:40ID:YWaIeQt8
[tiles.xml]
<definition name="xxx" path="template.jsp">
<put name="aaa" value="insert.jsp"/>
</definition>

[template.jsp]
<%@ page contentType="text/html; charset=MS932" %>
<%@ taglib uri="/WEB-INF/taglib/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/taglib/struts-tiles.tld" prefix="tiles" %>
<html:html>
<body>
<tiles:insert attribute="aaa" beanName="aaForm"/>
</html:html>

[insert.jsp]
<%@ page contentType="text/html; charset=MS932" %>
<%@ taglib uri="/WEB-INF/taglib/struts-bean.tld" prefix="bean" %>
<bean:write name="???" property="date"/>

上記のような状態で、template.jspで指定したBean(aaForm)の中身の値を
insert.jspに渡したいのですが、どのようにtilesの下の属性のJSPに
beanの値を渡せるのでしょうか。aaFormの内容は動的に変化します。
042542404/07/27 01:10ID:???
ム板のほうでも質問します。
両方みてるのでどちらかにレスを下さった時点でその旨を報告します。
0426nobodyさん04/07/27 01:59ID:???
なんだマルチか
0427nobodyさん04/07/27 11:52ID:???
まあどっちも過疎地域だし、報告もしてくれるならよいのでは。
042842504/07/27 12:13ID:???
解決しました。今携帯なのでどうやって解決したかはまた後で報告します。
042942504/07/27 21:58ID:???
帰ってきました。
bean:defineで解決しました。

[template.jsp]
<%@ page contentType="text/html; charset=MS932" %>
<%@ taglib uri="/WEB-INF/taglib/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/taglib/struts-tiles.tld" prefix="tiles" %>
<html:html>
<bean:define id="form" name="aaForm"/>
<body>
<tiles:insert attribute="aaa" beanName="form"/>
</html:html>

[insert.jsp]
<%@ page contentType="text/html; charset=MS932" %>
<%@ taglib uri="/WEB-INF/taglib/struts-bean.tld" prefix="bean" %>
<bean:write name="aaa" property="date"/>
043042504/07/27 22:23ID:???
最後の1行間違えた。
誤:<bean:write name="aaa" property="date"/>
正:<bean:write name="form" property="date"/>
0431セキュリティ04/08/05 00:50ID:JUf/Rg2G
strutsを使ったWEBページ(JSP)でBASIC認証を掛けたいのですが
分かる方いますか?通常とおりにBASIC認証の設定をしても
URLが○○Action.doとか○○Return.doとかなのでJSPと指定した
ディレクトリ内のJSPだと認識してくれず、認証がかかりません。

指定したディレクトリに認証掛けるのではなく、指定したURLに認証を
掛けることってできるのでしょうか。
0432nobodyさん04/08/05 05:26ID:???
よくわかんねーので識者の反応を待って欲しいのだが

・サーブレットコンテナ側でベーシック認証
・redirectするようにする

とか?
0433nobodyさん04/08/05 07:21ID:???
>>431
出来るよ。
でもそれは Struts とは関係のない世界。

使ってる Web サーバすら書いてないから答えられないけどね。
0434セキュリティ04/08/07 00:35ID:eCns8z8W
回答ありがとうございます。
情報が足りなくすみません。WEBサーバはtomcatをコンテナにapacheを利用しています。
OS:RedhatLinux
AP:apache1.3.28
  tomcat5.0.19

調べたところ、JSPの配置場所を変えればなんとかなりそうなのですが、
元々strutsでの開発を考えてなかったようでWEB-INFと同階層にJSP用の
フォルダが配置されています。そのため、現在の配置に対応するためには
JSP側のsubmitとstruts-conf側のactionの中でパスを追加しなくては
ならないみたいです。
ソースはいじらずに設定したいのですが、apacheやtomcatだけの設定で
どうにかならないでしょうか。
例】
DcumentRoot:/apl
jspの位置:/apl/test
  1)http://www.hogehoge.co.jp/apl/test/sys1/hoge.jsp
  2)http://www.hogehoge.co.jp/apl/HogeHoge.do

上記の例で1)のURLであればhtaccessでパスを解釈するのですが、
同じjspファイルを呼び出してもstrutsを使ったシステムでは2)の
URLのように表示されるため、ファイルパスがapacheで解釈されずに
制限を掛けたにも関わらず、画面が表示されてしまいます。

>432
tomcatでのベーシック認証でもパスの関係で上手く動作しませんでした。
redirectの設定についてもう少し調べてみたいと思います。
>433
何か方法があれば教えてください。よろしくお願いします。


また、もしできたら結果報告したいと思います。
0435nobodyさん04/08/07 02:52ID:???
>>434
勘違いしてないか?
認証は各ファイルに対して行うのではなく、リクエストに対して行うのだよ。
Servletがリクエストを受けるのなら、Servletのパスに対して認証を設定する。
Strutsに限った話ではないのだが。
■ このスレッドは過去ログ倉庫に格納されています