1

データテーブルの列に commandLink を配置しようとしていますが、リンクをクリックすると、バックビーンでメソッドが呼び出されず、画面が更新され、何も起こりません。

私の問題についてインターネット上でいくつかのトピックがあることを知っています。私はすでにすべてのソリューションを試しましたが、ドンクは機能しました。Bean のスコープを変更しようとしましたが、h:commandLink に切り替えようとしましたが、html を消去してテンプレートを削除しましたが、何も解決しませんでした。私は何を間違っていますか?私のコードに従ってください:

私はglasshfish 3とprimeface 3.5を使用しています

xhtml:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<h:body>
    <h:form id="formTournament">
        <p:messages id="messages" /> 

               <p:dataTable id="tableTournaments"
                   value="#{tournamentBean.lazyModel}" var="tournament">
                   <p:column>
                    <p:commandLink id="signupt" action="#{tournamentBean.signUpTournament}"
                        update=":formTournament">
                        <f:setPropertyActionListener value="#{tournament}"   
                                    target="#{tournamentBean.selectedTournament}" />
                    </p:commandLink>
                   </p:column>

               </p:dataTable>
      </h:form>

</h:body>
</html>

@ManagedBean
@ViewScoped
public class TournamentBean{

private Tournament selectedTournament;

public TournamentBean() {
   this.selectedTournament = new Tournament();
}



public void signUpTournament() {
    this.tournamentController.signUpTournament(this.selectedTournament);
}

//getters and setters

}

手伝ってくれてありがとう!


これを試して

replace(substr(a.object_name,instr(a.object_name,',',1,1) + 1),',','-') ||'-'
4

2 に答える 2

1

みんな助けてくれてありがとう

解決策が見つかりました。Bean の注釈が間違っていました。間違ったクラス javax.faces.view.ViewScoped をインポートしていました。

正しいクラスは javax.faces です。Bean .ViewScoped.

それが、データテーブルのアクションが機能しない理由です。私の疑問は、他のボタンが私のアプリのデータテーブルを機能させるのはなぜですか?

とにかくすべてが動作するようになりました。

于 2013-08-30T13:19:32.850 に答える
0

マネージャー Bean の属性ごとに、それぞれの get と set が必要です。また、actionListing メソッドではなく、action メソッドを使用してみてください。ActionListener は、実際のアクションの前にアクションを実行するために使用されます。(詳細については、JSF ライフ サイクルを読む必要があります)。

また、lazyModel 属性の get メソッドなど、マネージャー Bean にいくつかの他のメソッドが欠落しているようです。

于 2013-08-30T03:48:50.847 に答える