对于我的流体列表模板中的f:link show动作,我想将javascript变量传递给参数,基本上是uid(将特定对象传递给showAction),但是它不符合我的意图。有针对此特定问题的解决方法吗?

裸模板如下所示:

  <f:for each="{termins}" as="termin">
    <tr>
      <td><f:link.action action="show" arguments="{termin : termin}"> {termin.mitarbeiter}</f:link.action></td>
      <td><f:link.action action="show" arguments="{termin : termin}"> {termin.kunde}</f:link.action></td>
    </tr>
  </f:for>
</table>

最佳答案

您不能-并且也不能(读:永远不应该)从JS生成到控制器动作的链接,因为它需要生成安全校验和。修改您创建的URL将产生安全错误。存在校验和以防止DDOS,因此有充分的理由。

有两种选择:


您可以提前生成所有链接
您可以使用XHR调用链接生成服务,以从JS生成必要的链接。


只有第一个适合您的用例。特别是这样,因为您要传递始终引用数据库中对象的UID值-这意味着您可以轻松生成所有可能的详细视图的链接列表,然后从JS中读取/传递该链接列表以选择正确的链接一。

07-26 00:33