- PR -

Java Server Facesでログイン処理

投稿者投稿内容
takashi
ベテラン
会議室デビュー日: 2004/02/12
投稿数: 79
お住まい・勤務地: 東京
投稿日時: 2005-10-20 11:05
こんにちは。
引用:

みなさんはjspの配置をどうされてるのでしょうかね。


僕が実際に作成した時は、
 /-|
  |-WEB-INF
  |     |-classes
  |     |
  |     |-lib
  |     web.xml
  |     faces-config.xml
  |-jsf
    |
    |-複数jsfファイル

という配置にして、web.xmlには

 <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.jsf</url-pattern>
 </servlet-mapping>

と記述しておいて、
http://host名/jsf/〜.jsf
とアクセスすることで、正常に動作しました。
以上ご参考になれば。
よしだひろゆき
大ベテラン
会議室デビュー日: 2004/11/22
投稿数: 141
投稿日時: 2005-10-20 17:14
引用:

多分なんですが、Struts等とはちがいjspのファイルをフォルダ別管理してしまうと
FacesServletがうまく機能してくれないのではないかと、自分のなかで結論にたっしたのですが。。
/sys/*のアスタリスク部分にはフォルダをいれてはだめではないかと。。


そんなことは無いと思います.
viewIDについては,仕様書で以下のように既定されています.
If prefix mapping (such as “/faces/*”) is used for FacesServlet, the viewId
is set from the extra path information of the request URI.
ですからURLがlocalhost:8080/info/sys/view/login.jspであれば,viewIdは /view/login.jspになるはずです.
実際,こちらでviewフォルダを作成してそちらにjspを移してみましたが,現象は再現しません.ちゃんと動作します.PhaseListenerをしかけて,viewIdをコンソールに表示してみるとちゃんと /view/login.jsp になっています.

先にポストしたように,もしservlet-mappingに問題があって,FacesServletが動作していないのであれば,Cannot find FacesContextとなってスタックとレース表示になるはずで,必須入力エラーなどという中途半端なことになるはずないのですが.
MAX
会議室デビュー日: 2005/10/16
投稿数: 5
投稿日時: 2005-10-20 21:42
takashi様 よしだ様ありがとうございます。

やはりフォルダをいれても問題ないのですね。

うーん、ますます分からなくなってきましたが
takashi様のパターンやよしだ様がおっしゃている
viewId等でいろいろと調査してみようと思います。


ありがとうございます。

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