当我点击任何链接时,它应该在JSF中的同一个新窗口Primefaces中打开

当我点击任何链接时,它应该在JSF中的同一个新窗口Primefaces中打开,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,在我的JSF页面中,我有几个链接{link1,link2,link3,link4}-{Student Id}。 我尝试的是,当我点击链接时,它会在的“新窗口”中打开学生信息。 当我点击下一个链接时,它正在打开一个新窗口,但我想在同一个新窗口中打开,即目标应该是打开的同一个新窗口 诊断表示法: 我从STACKOVERFLOW收集东西时尝试的代码: 在@Nosnhoj Reply之后编辑:当我单击任何SID链接时,应在“相同的新窗口”中打开详细信息。使用而不是 我尝试了您的代码,并做了如下小更

在我的JSF页面中,我有几个
链接{link1,link2,link3,link4}-{Student Id}。

我尝试的是,当我点击链接时,它会在
的“新窗口”中打开学生信息。

当我点击下一个链接时,它正在打开一个新窗口,但我想在同一个新窗口中打开,即目标应该是打开的同一个新窗口

诊断表示法:

我从STACKOVERFLOW收集东西时尝试的代码:


在@Nosnhoj Reply之后编辑:
当我单击任何SID链接时,应在“相同的新窗口”中打开详细信息。

使用
而不是

我尝试了您的代码,并做了如下小更改:

<h:commandLink id="sidlink" action="#{studentController.selectStudent(studData)}" target="_blank">  
    <h:outputText value="#{studData.studentId}" styleClass="txtlink" />
</h:commandLink>
以下是新窗口的代码:

 <h:form>
    <h:commandLink value="Another Link" action="/anotherinfo.xhtml" target="_self"/>
    <br/>
    Student: <h:outputText value="#{studentController.selectedStu.studentName}"/>
 </h:form>
我将
更改回
,使
操作
成为
操作监听器
,因为我们想先设置所选学生,最后我添加
窗口。在
oncomplete
属性中打开
,这样新页面将在新窗口中打开,而不是在选项卡中打开。
当然,我们需要编辑方法
studentController.selectStudent()
,如下所示:

public void selectStudent(Student stu) {
    selectedStu = stu;
}
如您所见,返回类型现在是void,此方法只需设置所选学生即可。

希望这能有所帮助。

@Makky我粘贴了一个示例代码,希望它能有所帮助。因为我对JSF、Primefaces是新手。我无法弥补。如果我在任何地方出错,请纠正我。感谢您的回复。您是否尝试了前面问题中的答案?您不能使用对话框而不是在不同的选项卡中显示结果吗?@Makky我的要求是我有一页学生信息要显示,所以我想将它们作为单独的页面显示。对话框是一个很好的对话框,可能很有用,但它不是我想要的情况。我在下面为答案添加了一条注释。答案很好!它工作得很好。但是,我的要求是,如果在您的场景中单击SID,则在SID上点击2,然后“新窗口”打开。如果再次单击SID:4,则应该刷新同一个“新窗口”并显示“学生信息”。然后只需更改<代码>目标=“空空白”<代码> > <代码>目标=“新”。
。它怎么能在打开的同一个窗口中打开,然后我每次单击它都会打开一个新窗口,而旧窗口仍然保持打开状态。
target=“\u NEW”
工作正常。但是,我很惊讶它怎么能在同一个窗口中打开。。它是打开一个窗口作为一个新的“标签”,我们可以使它在一个“新窗口”打开它工作得很好!但在第二次点击时,它并没有关注新窗口。我尝试了
window.open('studentinfo.xhtml','newwindow','width=300,height=250')。focus()成功了!谢谢你的支持
 <h:form>
    <h:commandLink value="Another Link" action="/anotherinfo.xhtml" target="_self"/>
    <br/>
    Student: <h:outputText value="#{studentController.selectedStu.studentName}"/>
 </h:form>
<p:commandLink id="sidlink" actionListener="#{studentController.selectStudent(studData)}" oncomplete="window.open('studentinfo.xhtml', 'newwindow', 'width=300, height=250');">  
    <h:outputText value="#{studData.studentId}" styleClass="txtlink" />
</p:commandLink>
public void selectStudent(Student stu) {
    selectedStu = stu;
}