0

ユーザーが自分の名前を入力して送信ボタンを押すと、ユーザーを歓迎するページが表示される JSF アプリケーションが動作しています。

構造は非常に単純で、名前のセッターとゲッターを持つ Person Bean があり、テキスト フィールドが名前を設定し、ウェルカム ページが Bean から名前を取得してウェルカム ページに表示します。

私の質問は、データベースへの接続を開く必要があるため、ユーザーが送信ボタンを押したときに XHTML から Java メソッドを呼び出すことができるかということです。アプリケーションの最初のページのコードは、xhtml ファイルでは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">

<h:head>
 <title>JSF 2.0 Hello World</title>
</h:head>
<h:body>
 <h3>JSF 2.0 Hello World Example - hello.xhtml</h3>
 <h:form>
  <h:inputText value="#{helloBean.name}"></h:inputText>
  <h:commandButton value="Welcome Me" action="welcome"></h:commandButton>
 </h:form>
</h:body>
</html>

そのため、Welcome Me をクリックすると、welcome.xhtml ファイルが呼び出され、Bean が渡されるように見えます。しかし、Welcome Me ボタンが押されたときにデータベースを開くコードを実行する必要もあります。

4

1 に答える 1

0

そのためにactionは、コマンドボタンの属性をBeanのアクションメソッドにバインドする必要があります。

<h:commandButton value="Welcome Me" action="#{helloBean.submit}" />

このメソッドでは、ボタンが押されたときに実行されるJavaコードを自由に書き留めることができます。

public String submit() {
    // ...

    return "welcome";
}

返された文字列は、ナビゲーションの結果として使用されます。nullまたはに戻るvoidと、同じビューに戻ります。

参照:

于 2012-12-09T17:51:37.780 に答える