JSF在另一个页面上显示不同的项目,具体取决于ID,JSF 2.2

时间:2017-02-06 18:10:26

标签: java jsf jsf-2.2

我试图在点击按钮时从一个页面到另一个页面获取ID,具体取决于我点击的按钮我将得到不同的ID,并且我希望从ID为索引的列表中显示信息。问题是我在使用调度时遇到错误,这是错误:

  

尝试重置响应时处理错误时出现异常。   的NullPointerException。

在宣传ID时,我得到了我想要的ID,但这是在我被重定向/分派到另一页之前。在产品页面中,我总是得到列表的第一个对象

使用Redirect时我没有收到任何错误,但我仍然只获得列表中的第一个对象

页面是否已初始化?如果是这种情况,我该如何解决这个问题。

我正在使用JSF 2.2并在snowboardBean上使用Dependent范围

SnowboardBean

<h:dataTable value="#{snowboardBean.snowList}" var="list">
                <h:column>
                    <h:form>

                    ID: #{list.id}<br></br>
                    Product Name: #{list.productName}<br></br>
                    Brand Name: #{list.brandName} <br></br>

                        <h:commandLink action="#{snowboardBean.forwardId()}" value="insert">
                            <f:param name="id" value="#{list.id}" />
                        </h:commandLink>
                    </h:form>
                </h:column>
            </h:dataTable>

index.html这里保存ID称为

CURRENT ID: #{snowboardBean.id}
        <ui:param name="id" value="#{snowboardBean.id}"/>
        <h:dataTable value="#{snowboardBean.snowList[id]}" var="list">
            <h:column>
                ID: #{list.id}<br></br>
                Product Name: #{list.productName}<br></br>
                Brand Name: #{list.brandName} <br></br>
            </h:column>
        </h:dataTable>

显示它,Product.xhtml:

// Filepaths
var themepath = 'wp/wp-content/themes/themename'


// optimise scripts
gulp.task('scripts', function() {
    return gulp.src('build/scripts/**/*.js')
    .pipe(order(['build/scripts/plugins/**/*.js','build/scripts/main.js']))
    .pipe(concat('main-min.js'))
    .pipe(uglify())
    .pipe(plumber())
    .on('error', errorLog)
    .pipe(gulp.dest(themepath + '/assets/scripts/min/'))
    .pipe(browserSync.stream());

点击第一个按钮时得到的输出是:

  

ForwardID   0

如果我点击第二个按钮,我会得到:

  

ForwardID   1

提前致谢!

编辑:添加了关于范围,jsf版本的附加信息,调用我的方法的位置以及我得到的输出。

编辑2:澄清

0 个答案:

没有答案