在JSF模板的标记属性中定义变量

时间:2017-07-07 12:54:04

标签: jsf

是否可以在我的模板中执行以下操作:

<shiro:hasPermission name="<ui:insert name="pagepermission"></ui:insert>">

然后可选择在每个页面中定义pagepermission

修改

所以我需要在我的template.xhtml中写下以下内容:

<shiro:hasPermission name="my string">

在使用该模板的任何页面my string中定义“X.xhtml”的位置。如果X.xhtml在页面definevar变量X.xthml并且我只使用:

,那么来自<ui:insert name="var"></ui:insert> 的模板中的变量可以正常工作
<shiro:hasPermission name="**HERE**">

在模板中。但是,由于我需要在属性中写出 变量(即在var list = []; var add = document.getElementById('add'); add.addEventListener('click', function() { var task = document.getElementById('task').value; list.push(task); localStorage.setItem('todo', JSON.stringify(list)); var todo_str = localStorage.getItem('todo'); var todos = JSON.parse(todo_str); var html = ''; for(var i=0; i<todos.length; i++) { html += '<li class="collection-item">' + todos[i] + '</li>'; } document.getElementById('todos').innerHTML = html; });内,然后JSF会抱怨。

1 个答案:

答案 0 :(得分:0)

您可以使用在某个容器中包装内容,然后使用rendered属性:

<h:panelGroup rendered="#{hasPermission}">
    <ui:insert name="pagepermission" />
</h:panelGroup>

为了更好地重用,您可以创建自己的自定义组件。见JSF 2 fu, Part 2: Templating and composite components