Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 在JSFbean中设置和获取参数时出现性能问题_Jsf 2 - Fatal编程技术网

Jsf 2 在JSFbean中设置和获取参数时出现性能问题

Jsf 2 在JSFbean中设置和获取参数时出现性能问题,jsf-2,Jsf 2,我使用JSF2.0,在该数据表中创建一个数据表,从托管bean中获取值,在托管bean中的post-construct annoted方法中,我从另一个文件调用我的web服务 下面是代码 <h:dataTable value="#{bean1.getList}" var="c" styleClass="order-table" headerClass="order-table-header" width="10

我使用JSF2.0,在该数据表中创建一个数据表,从托管bean中获取值,在托管bean中的post-construct annoted方法中,我从另一个文件调用我的web服务

下面是代码

<h:dataTable
                    value="#{bean1.getList}" var="c" styleClass="order-table"
                    headerClass="order-table-header" width="100%" 
                    rowClasses="order-table-odd-row,order-table-even-row" rows="8"
                    columnClasses="first,second">

                    <h:column>
                        <f:facet name="header">
                            <h:selectBooleanCheckbox></h:selectBooleanCheckbox>
                        </f:facet>
                             <h:selectBooleanCheckbox value="#{c.id}"></h:selectBooleanCheckbox>

                    </h:column>

                    <h:column>
                        <!-- <f:facet name="header"/> -->
                        <h:outputLabel value="From: "></h:outputLabel>
                        <h:outputLabel value="#{c.from}"></h:outputLabel>
                        <br></br>
                        <!-- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -->
                        <h:outputLabel value="Sub: "></h:outputLabel>
                        <h:outputLabel  value="#{c.sub}"/>
                        <h:commandLink immediate="true" action="#{bean2.doRead}" value="Read" id="Read"></h:commandLink> 
                    </h:column>


                    <!-- Footer Setting -->
                    <f:facet name="footer">

                    </f:facet>
                </h:dataTable>



我的Bean1课

@PostConstruct
public void prepareList(){
{
        web service call

}

public List<InboxBean> getemailList(){
    return list;
}
@PostConstruct
公共无效准备列表(){
{
web服务调用
}
公共列表getemailList(){
退货清单;
}

现在,当我点击commandlink时,它的id读取了我的bean1 post-construct标记属性也被调用。我不想执行。因此,如何摆脱这个问题,我还想在bean2 setProperty中设置主题值。提前感谢,如果bean被放入请求范围,这可能会发生。每个HTTP req然后,uest将重建bean。将bean放在视图或会话范围中

例如,在视图范围内:

@ManagedBean
@ViewScoped
public class Bean {}
只要您通过在action方法中返回
null
void
来与同一视图交互,视图范围的bean就会存在

或在会话范围内:

@ManagedBean
@SessionScoped
public class Bean {}
会话范围的bean与已建立的浏览器会话一样长。也就是说,从涉及bean的第一个HTTP请求开始,直到客户端关闭整个浏览器实例,或者会话在服务器端过期(默认为30分钟)

对于您的特定情况,视图范围的bean很可能是最佳选择

另见:

如果将bean放入请求范围,则可能发生这种情况。然后,每个HTTP请求都将重建bean。将bean放入视图或会话范围

例如,在视图范围内:

@ManagedBean
@ViewScoped
public class Bean {}
只要您通过在action方法中返回
null
void
来与同一视图交互,视图范围的bean就会存在

或在会话范围内:

@ManagedBean
@SessionScoped
public class Bean {}
会话范围的bean与已建立的浏览器会话一样长。也就是说,从涉及bean的第一个HTTP请求开始,直到客户端关闭整个浏览器实例,或者会话在服务器端过期(默认为30分钟)

对于您的特定情况,视图范围的bean很可能是最佳选择

另见: