相关疑难解决方法(0)

Ajax渲染属性不起作用啊:JSF2中的dataTable

我在JSF 2.0中使用一个简单的应用程序有一些问题.

我尝试使用ajax支持构建ToDo列表.我有一些todo字符串,我使用数据表显示.在这个数据表中,我有一个commandLink来删除任务.现在的问题是数据表不会被重新渲染.

    <h:dataTable id="todoList" value="#{todoController.todos}" var="todo">
        <h:column>
                <h:commandLink value="X" action="#{todoController.removeTodo(todo)}">
                    <f:ajax execute="@this" render="todoList" />
                </h:commandLink>
        </h:column>
        <h:column>
            <h:outputText value="#{todo}"/>
        </h:column>
    </h:dataTable>
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

编辑(TodoController):

@ManagedBean
@SessionScoped
public class TodoController {

private String todoStr;
private ArrayList<String> todos;

public TodoController() {
    todoStr="";
    todos = new ArrayList<String>();
}

public void addTodo() {
    todos.add(todoStr);
}

public void removeTodo(String deleteTodo) {
    todos.remove(deleteTodo);
}

/* getter / setter */
}
Run Code Online (Sandbox Code Playgroud)

java jsf glassfish jsf-2

6
推荐指数
1
解决办法
2万
查看次数

JSF 2.0:在ui中重新渲染/更新单个项目:使用AJAX重复

我的页面由几个区域组成,这些区域是通过迭代使用的项目列表创建的<ui:repeat>.想象一下这个简化的例子:

<h:form id="form">    
    <ui:repeat id="repeatContainer" var="item" value="#{testBean.items}" varStatus="status">
        <h:outputText value="#{item.title}: "/>

        <!-- I want to re-render only a single one of these fields -->
        <h:outputText id="valueContainer" value="#{item.value}"/><br/>          
    </ui:repeat>
</h:form>
Run Code Online (Sandbox Code Playgroud)

现在,我想使用AJAX(例如,索引为1的元素)重新渲染(仅)此列表valueContainer中的特定元素.我已经尝试过所有这些组合而没有任何运气:

<!-- Works, but renders all items: -->
<f:ajax render=":form"/>

<!-- This is what I actually want to achieve (does not work, comp. not found): -->
<f:ajax render=":form:repeatContainer:1:valueContainer"/>

<!-- Does not work (component not found): -->
<f:ajax render=":form:repeatContainer"/>

<!-- Does not work (component …
Run Code Online (Sandbox Code Playgroud)

ajax jsf repeat jsf-2

5
推荐指数
1
解决办法
5407
查看次数

为什么h:dataTable里面没有ui:重复获取正确的ID?

码:

<ui:repeat var="obj" value="#{demo2Bean.someList}">
    <h:panelGroup id="foo" />
    <h:dataTable id="bar" />
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)

结果:

<span id="j_idt55:0:foo"></span>
<table id="j_idt55:0:bar"><tbody><tr><td></td></tr></tbody></table>
<span id="j_idt55:1:foo"></span>
<table id="j_idt55:0:bar"><tbody><tr><td></td></tr></tbody></table>
Run Code Online (Sandbox Code Playgroud)

如您所见,datatables的id与'j_idt55:0:bar'相同,但对于panelGroups,它增长(应该如此):'j_idt55:0:foo','j_idt55:1:foo'.为什么会这样?

java jsf jsf-2

3
推荐指数
1
解决办法
1059
查看次数

标签 统计

jsf ×3

jsf-2 ×3

java ×2

ajax ×1

glassfish ×1

repeat ×1