gpt4 book ai didi

java - 按下按钮没有反应

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:15 25 4
gpt4 key购买 nike

我有一个素面戒指:

    <h:form>
<p:ring id="ring" value="#{ringBean.images}" var="image"
styleClass="image-ring" easing="easeInOutBack">
<p:graphicImage value="./../../images/#{image.image}" width="150" height="150"/>
<p:commandButton value="#{image.name}" action="#{image.action}" />
</p:ring>
</h:form>

我的 RingBean:

@ManagedBean
@RequestScoped
public class RingBean implements Serializable{

private List<PersonImage> images;
private PersonImage selectedPerson;

public RingBean() {
images = new ArrayList<PersonImage>();
images.add(new PersonImage("person3.png", "Pacjent", "patientList"));
images.add(new PersonImage("person4.png", "Admin", "adminList"));
images.add(new PersonImage("person5.png", "Lekarz", "doctorList"));
images.add(new PersonImage("person6.png", "Sekretarka", "secretaryList"));
images.add(new PersonImage("person7.png", "Nieaktywni", "inactiveList"));
}

public List<PersonImage> getImages() {
return images;
}

public PersonImage getSelectedPerson() {
return selectedPerson;
}

public void setSelectedPerson(PersonImage selectedPerson) {
this.selectedPerson = selectedPerson;
}

}

PersonImage 类:

public class PersonImage {

String image;
String name;
String action;

public PersonImage() {
}

public PersonImage(String image, String name, String action) {
this.image = image;
this.name = name;
this.action = action;
}

public String getImage() {
return image;
}

public void setImage(String image) {
this.image = image;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAction() {
return action;
}

public void setAction(String action) {
this.action = action;
}

}

面孔配置:

<navigation-case>
<from-outcome>adminList</from-outcome>
<to-view-id>/protected/admin/adminList.xhtml</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>doctorList</from-outcome>
<to-view-id>/protected/admin/doctorList.xhtml</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>patientList</from-outcome>
<to-view-id>/protected/admin/patientList.xhtml</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>secretaryList</from-outcome>
<to-view-id>/protected/admin/secretaryList.xhtml</to-view-id>
<redirect/>
</navigation-case>

当我按下按钮时,没有任何反应。但为什么?我将此操作添加到按钮中:

在 Ring 中我添加了: images.add(new PersonImage("person4.png", "Admin", "adminList"));

操作是adminList。为什么这不起作用?

当我将按钮更改为:<p:commandButton value="#{image.name}" action="adminList" />一切正常。为什么?两种构造都返回相同的字符串。

最佳答案

在你的

<p:commandButton value="#{image.name}" action="#{image.action}" />

image.action更改为image.getAction

<p:commandButton value="#{image.name}" action="#{image.getAction}" />

action 需要方法表达式,因此您必须提供完整的方法名称 getAction。缩写名称 action(如 image.action 中)仅在属性需要值表达式时才有效。

评论

p:graphicImage 中,您不必以这种方式处理 URL 值。让 JSF 为您处理。例如,如果您的图像位于以下路径

<context-path>/web pages/images/someImage.png 

只需提供这样的值

/images/someImage.png 

换句话说,

<p:graphicImage value="/images/#{image.image}"> 

JSF 将在提供页面时附加附加路径信息。

关于java - 按下按钮没有反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17372956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com