【发布时间】:2016-03-09 17:00:30
【问题描述】:
我找到了一个 Bootstrap 可重复使用的字段自定义控件,并一直在我的最新项目中使用它。它运行良好,但验证是由 Xpage 中的 SSJS 完成的,我将尽可能多地从 Xpage 中移出编程并进入 Java bean。
我在我的 bean 中进行了验证,但它将错误放在表单顶部的显示错误控件中。我希望我的 Java 验证使用 Bootstrap 样式错误。
我在BootstrapForXpages site 上找到了一个很好的讨论。
StackOverflow addressed this same issue 中的另一个问题,但我无法弄清楚如何让它工作。
How to use XPages Java code to set valid method of input control inside a custom control?
这里是字段 CC
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:div>
<xp:this.styleClass><![CDATA[#{javascript:"form-group" + ( getComponent("inputText1").isValid() ? "" : " has-error" )}]]></xp:this.styleClass>
<xp:label styleClass="col-sm-2 control-label" for="inputText1"
value="${compositeData.fieldLabel}" />
<div class="col-sm-10">
<xp:inputText type="text" id="inputText1"
loaded="${!empty compositeData.placeholder}" value="#{compositeData.dataSource[compositeData.fieldName]}"
required="${compositeData.required}">
<xp:this.attrs>
<xp:attr name="placeholder" value="${compositeData.placeholder}" />
</xp:this.attrs>
<xp:this.validators>
<xp:validateRequired
message="#{javascript:compositeData.fieldLabel + ' is required'}" />
</xp:this.validators>
</xp:inputText>
<xp:text escape="true" id="computedField1" styleClass="help-block"
value="${compositeData.helpText}">
<xp:this.rendered><![CDATA[#{javascript:getComponent("inputText1").isValid() && compositeData.helpText != null}]]></xp:this.rendered>
</xp:text>
<xp:message id="message1" for="inputText1" styleClass="help-block" />
</div>
</xp:div>
</xp:view>
以及带有控件的简单 Xpage 的代码:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xc:ccCustomField placeholder="Enter your email address"
fieldLabel="Email" helpText="Guess what you have to enter here..."
fieldName="model">
<xc:this.dataSource>
<xe:objectData var="PCModel">
<xe:this.createObject><![CDATA[#{javascript:var pc = new com.scoular.data.PC().create();
return pc;}]]></xe:this.createObject>
</xe:objectData>
</xc:this.dataSource>
</xc:ccCustomField>
</xp:view>
【问题讨论】:
-
com.scoular.data.PC 类有属性模型吗??
-
是的。也许这不是一个很好的字段名称?
-
可能model是一个保留字,比如view
-
不,我认为这不是问题,因为我已经使用这个属性很长时间了,没有任何问题。此外,如果我使用不同的字段名称,我仍然会收到错误,但使用其他字段名称。所以我有一个属性 officeLoc,如果我把它放在那里,我会收到相同的消息,但使用的是 officeLoc 而不是模型。
标签: xpages