gpt4 book ai didi

使用 JSF 验证更改 Css 样式

转载 作者:技术小花猫 更新时间:2023-10-29 12:12:32 25 4
gpt4 key购买 nike

我正在处理一项要求,即在 JSF 服务器端验证后以红色突出显示失败的字段。没有 javascript 可以用于验证。有没有一种方法可以将服务器端验证与 css 样式更改联系起来?

最佳答案

您可以使用托管 bean 执行此操作:

public class ValidBean {

private UIComponent myComponent;

public UIComponent getMyComponent() {
return myComponent;
}

public void setMyComponent(UIComponent myComponent) {
this.myComponent = myComponent;
}

public String getErrorStyle() {
FacesContext context = FacesContext
.getCurrentInstance();
String clientId = myComponent.getClientId(context);
Iterator<FacesMessage> messages = context
.getMessages(clientId);
while (messages.hasNext()) {
if (messages.next().getSeverity().compareTo(
FacesMessage.SEVERITY_ERROR) >= 0) {
return "background-color: red";
}
}
return null;
}
}

请求范围变量:

  <managed-bean>
<managed-bean-name>validBean</managed-bean-name>
<managed-bean-class>stylevalid.ValidBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>

示例 View :

  <f:view>
<h:form>
<h:inputText binding="#{validBean.myComponent}" styleClass="foo"
style="#{validBean.errorStyle}">
<f:validateLength minimum="6" />
</h:inputText>
<h:commandButton />
<h:messages />
</h:form>
</f:view>

该组件绑定(bind)到支持 bean。如果组件的错误消息已排队,它会使用其样式属性覆盖其 CSS 类设置。

关于使用 JSF 验证更改 Css 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1150776/

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