小编Smu*_*tje的帖子

除非给出ID,否则不会呈现没有style或styleClass的panelGroup

根据http://xmlns.jcp.org/jsf/html的标签库,a h:panelGroup

适用于只能嵌套一个UIComponent子项的情况,例如facet.如果存在"style"或"styleClass"属性,并且"layout"属性的值为"block",则渲染"div"元素,输出"style"属性的值作为"style"属性和"styleClass"属性的值作为"class"属性的值.否则,如果"layout"属性不存在,或者"layout"属性包含"block"以外的值,则渲染"span"元素,输出"style"属性的值作为"style"的值"attribute"和"styleClass"属性的值作为"class"属性的值.

的情况下

<h:panelGroup id="id" layout="block">
    <!-- ... --->
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

要么

<h:panelGroup layout="block" style="margin-right: 10px;">
    <!-- ... --->
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

a div正在呈现:

<div id="id">
</div>
Run Code Online (Sandbox Code Playgroud)

各自

<div style="margin-right: 10px;">
</div>
Run Code Online (Sandbox Code Playgroud)

但省略时id(如果不想updatepanelGroup)或者style(如果不想样式的panelGroup)没有div被渲染和生成的HTML可以搞砸那些布局.除了探索JSF的领域之外,panelGroup还可以使用a来有条件地使用其rendered标志来呈现子元素,但如前所述,当省略两个提到的属性时,结果是有条件地呈现但没有a div,例如

<h:panelGroup layout="block" rendered="true">
<it>Without DIV.</it>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

导致

<it>Without DIV.</it>
Run Code Online (Sandbox Code Playgroud)

在此查询之后,我想与Stackoverflow社区核实,我理解正确的是,当不使用a panelGroup作为命名容器或习惯样式时,使用a ui:fragment和布局部分更好地解决条件渲染部分(如果需要)用硬编码div.是这样吗?

jsf

9
推荐指数
1
解决办法
2878
查看次数

根据f:viewParam有条件地调用f:viewAction

我们有一个设置,我们将不同的可选视图参数传递给JSF页面,并在设置参数后处理后续视图操作.一个非常简单的例子如下所示:

page.xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://xmlns.jcp.org/jsf/html"
  xmlns:f="http://xmlns.jcp.org/jsf/core">

<f:view>
    <f:metadata>
        <f:viewParam name="a" value="#{page.a}"/>
        <f:viewAction action="#{page.populateA()}" if="#{not empty page.a}"/>

        <f:viewParam name="b" value="#{page.b}"/>
        <f:viewAction action="#{page.populateB()}"/>
    </f:metadata>

    <h:outputLabel value="#{page.message}"/>
</f:view>
</html>
Run Code Online (Sandbox Code Playgroud)

import javax.faces.view.ViewScoped;
import javax.inject.Named;

@ViewScoped
@Named
public class Page {

    private String a;

    private String b;

    private String message;

    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }

    public String getB() {
        return b;
    } …
Run Code Online (Sandbox Code Playgroud)

jsf jsf-2.2 viewaction

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

Java对象创建的区别

我是Java中的OOP概念的新手.这两起事件有什么区别?

1.

ClassName obj_name = new ClassName();
obj_name.method();
Run Code Online (Sandbox Code Playgroud)

2.

new ClassName().method();
Run Code Online (Sandbox Code Playgroud)

非常感谢一个很好的解释.谢谢

java oop object-create

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

标签 统计

jsf ×2

java ×1

jsf-2.2 ×1

object-create ×1

oop ×1

viewaction ×1