2017-05-05 12 views
1

私はJavaのタペストリーで作業しており、tmlファイルには各行のボタン付きループがあります。ボタンをクリックすると、行の要素の値をonSuccess()メソッドに渡す必要があります。 私はt:context = "value"をボタンで試しましたが、うまくいかず、解決策が見つかりません。メソッドonSuccesに値を渡す

TML:

<tr t:type="Loop" t:source="movieList" t:value="movie"> 
    <td> 
     <a href="#" t:type="PageLink" t:page="index"> 
      ${movie.title} 
     </a> 
    </td> 
    <td> 
     ${movie.score} 
    </td> 
    <td> 
     <form t:type="Form" class="form-horizontal" t:id="deleteMovie"> 
      <button type="submit" t:context="movie.movieId" class="btn btn-primary"> 
       <img src="${context:i/basura.png}" width="25" heigth="25"/> 
      </button> 
     </form> 
    </td> 
</tr> 

Javaメソッド:

@OnEvent(value = "success", component ="deleteMovie") 
Object[] onSuccesFromDeleteMovie(Long movieId) throws InstanceNotFoundException { 
    movieService.removeMovie(movieId); 
    return new Object[] {startIndex}; 
} 

答えて

0

あなたbuttonはプレーンなHTMLボタンではなく、タペストリーのコンポーネントであるため、それは "動きません"。この場合、t:contextはプレーンなHTML属性としてレンダリングされ、結果のHTMLを検査することで検証できます。

タペストリーがあなたのボタンが実際にタペストリーSubmitコンポーネントであることを知って、あなたはすなわち、type属性にt:接頭辞を追加することができようにする:イベントから戻っObject[]:あなたの次の質問を見越し

<button t:type="submit" t:context="movie.movieId" ... />

ハンドラは動作しません。supported method return value.

このような単純な使用例では、文脈で平文EventLinkを使用することができます。foを指定する必要はありませんrmを使用してサーバー側のイベントハンドラを起動します。

また、ある時点でAjaxを使用することに決めた場合、JumpStart's AjaxFormLoop exampleも役立ちます。

関連する問題