[解決済み] JSFでフォームアクションを定義する方法は?
2022-03-11 14:57:34
質問
Springセキュリティのデフォルトのログインフォームを置き換えるために、私はこの解決策を思いつきました。
<form name="f" action="../j_spring_security_check" method="POST" >
<h:panelGrid columns="2">
<h:outputText value="Username" />
<h:inputText id="j_username" />
<h:outputText value="Password" />
<h:inputText id="j_password" />
</h:panelGrid>
<h:commandButton value="Login" />
</form>
しかし、プレーンな
<form>
タグを使用したい。
<h:form>
Primefacesのコンポーネントは
<h:form>
. 使用方法
<h:form>
の場合、フォームアクションはJSFによって自動的に現在のページに設定され、上記の例で私が設定した値にはなりません。どこでアクションをコード化すればいいのでしょうか?
"../j_spring_security_check"
今すぐ の中に入れてみました。
<h:commandButton>
を以下のようにしましたが、うまくいきません。
<h:form name="f">
<h:panelGrid columns="2">
<h:outputText value="Username" />
<h:inputText id="j_username" />
<h:outputText value="Password" />
<h:inputText id="j_password" />
</h:panelGrid>
<h:commandButton value="Click here" action="../j_spring_security_check" />
</form>
エラーメッセージにつながる
Unable to find matching navigation case with from-view-id '/login.xhtml' for action '../j_spring_security_check' with outcome '../j_spring_security_check'
.
でナビゲーションケースを定義するのが唯一の方法なのでしょうか?
faces-config.xml
? この単純なユースケースでビーンを使うのは避けたいのです。
どのように解決するのですか?
私にとっての最良の解決策は、デフォルトの
<button>
タグで代用します。典型的なボタンスタイルが適用されていないので(私の場合はPrimefacesを使用しています)、手動で設定しました。これが全体の結果です。
<h:outputStylesheet library="primefaces" name="jquery/ui/jquery-ui.css" />
<h:outputStylesheet library="css" name="login.css" />
<div class="message">
<c:if test="#{param.error == 1 and SPRING_SECURITY_LAST_EXCEPTION != null}">
<span class="error">#{SPRING_SECURITY_LAST_EXCEPTION.message}</span>
</c:if>
</div>
<div class="login">
<form action="../j_spring_security_check" method="post">
<h:panelGrid columns="2">
<h:outputText value="Username" />
<h:inputText id="j_username" />
<h:outputText value="Password" />
<h:inputSecret id="j_password" />
</h:panelGrid>
<div class="submit">
<button type="submit" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only">
<span class="ui-button-text">Login</span>
</button>
</div>
</form>
</div>
関連
-
[解決済み] 使用用途
-
[解決済み] フォーム型Webサイト認証の決定版【終了しました
-
[解決済み] Webフォームのフィールド/入力タグでブラウザのオートコンプリートを無効にするにはどうすればよいですか?
-
[解決済み] フォーム送信のようなJavaScriptのポストリクエスト
-
[解決済み] 電子メールアドレスに使用できる文字は何ですか?
-
[解決済み】JSF、Servlet、JSPの違いは何ですか?
-
[解決済み】HTML5の "required "属性をチェックボックスのグループに使用する?
-
[解決済み] AngularJSでフォームが無効なときに送信ボタンを無効にする
-
[解決済み] カピバラを使って、フォームのフィールドが正しくプリフィルドされているかどうかを確認するにはどうすればよいですか?
-
[解決済み] Razorで "Html.BeginForm "を記述する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Angular 2: formGroup は FormGroup のインスタンスを期待します。1つを渡してください。
-
[解決済み] Angular 2: formGroup は FormGroup のインスタンスを期待します。1つを渡してください。
-
[解決済み] 使用用途
-
[解決済み】HTMLフォームのaction属性に空のURLを使用するのは良い方法ですか?(action="")
-
[解決済み】チェックしたラジオボタンのラベルをCSSセレクタで指定する方法
-
[解決済み】FormBuilderコントロールの値を手動で設定する。
-
[解決済み】Chromeの開発ツールのネットワークタブに表示される「リクエストペイロード」と「フォームデータ」の違いとは?
-
[解決済み] Angular 2:'ngModel'が'input'の既知のプロパティではないため、バインドできない。
-
[解決済み] カピバラを使って、フォームのフィールドが正しくプリフィルドされているかどうかを確認するにはどうすればよいですか?
-
[解決済み] Razorで "Html.BeginForm "を記述する方法