- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在一个相当标准的 Java Web 应用程序 (jsf-2) 中使用 PrimeFaces,当我将 p:autoComplete 组件移动到它自己的自定义组件中时,我所需的消息显示出现问题。
首先,p:autoComplete 当它位于页面本身时 - 这工作正常(简化):
<h:panelGrid id="newRoleAdminGrid" >
<p:autoComplete id="newRoleAdminPerson"
style="position: relative; padding-right:5px"
value="#{roleList.newRoleAdminPerson}"
var="personVar"
itemValue="#{personVar}"
itemLabel="#{personVar.fullFamiliarName}"
forceSelection="true"
completeMethod="#{personAutoComplete.byGeneralCriteria}"
converter="PersonConverter"
minQueryLength="3"
maxResults="50"
scrollHeight="400"
size="50"
required="true"
requiredMessage="admin name is requiredd"
title="enter users first name, last name or login" >
</p:autoComplete>
<h:message for="newRoleAdminPerson" class="redError"/>
<p:commandButton value="add" ajax="true"
update="roleAdminTable,newRoleAdminGrid"
id="addRoleAdminBtn"
actionListener="#{roleList.newRoleAdmin}"
style="margin:5px;"
icon="ui-icon-plus"/>
</h:panelGrid>
看到上面的 h: 消息了吗?效果完美,当值为空或未通过 PersonConverter 时显示...
但是我的应用程序中到处都有这个相同的组件,所以我创建了一个自定义组件。
这是组件:
<cc:interface>
<cc:attribute name="id" type="String" required="true" />
<cc:attribute name="person" type="com.foo.bar.model.Person" required="true" />
<cc:attribute name="size" type="int" required="false" default="50" />
<cc:attribute name="required" type="boolean" required="false" default="false" />
<cc:attribute name="requiredMessage" type="String" required="false" default="required" />
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<p:autoComplete id="#{cc.attrs.id}"
style="position: relative; padding-right:5px"
value="#{cc.attrs.person}"
var="personVar"
itemValue="#{personVar}"
itemLabel="#{personVar.fullFamiliarName}"
forceSelection="true"
completeMethod="#{personAutoComplete.byGeneralCriteria}"
converter="PersonConverter"
minQueryLength="3"
maxResults="50"
scrollHeight="400"
size="#{cc.attrs.size}"
required="#{cc.attrs.required}"
requiredMessage="#{cc.attrs.requiredMessage}"
title="enter users first name, last name or login" >
</p:autoComplete>
<h:message for="#{cc.attrs.id}" class="redError"/>
</cc:implementation>
这是现在的代码(使用自定义组件):
<h:panelGrid id="newRoleAdminGrid" >
<my:personLookup id="newRoleAdminPerson"
person="#{roleList.newRoleAdminPerson}"
required="true" requiredMessage="#{propUtil.appShortName} Admin Name is required"/>
<h:message for="newRoleAdminPerson" class="redError"/>
<p:commandButton value="add" ajax="true"
update="roleAdminTable,newRoleAdminGrid"
id="addRoleAdminBtn"
actionListener="#{roleList.newRoleAdmin}"
style="margin:5px;"
icon="ui-icon-plus"/>
</h:panelGrid>
当我以这种方式运行它时,该组件可以工作 - 如果用户将其留空,或者它没有通过验证,primefaces 边框会变成红色,但 h:message 永远不会显示实际错误(requiredMessage 或在人物转换器)
我已经尝试了很多不同的变体,例如仅在实现中或仅在 my:personLookup 中设置 id,或两者都设置。
有人遇到过这个吗?我是否做错了什么或设置错了什么?谢谢您的宝贵时间!!
最佳答案
感谢@partlov 提供的解决方案。这是我正确显示消息的最终代码 -
组件:
<!-- INTERFACE -->
<cc:interface>
<cc:attribute name="person" type="com.foo.bar.model.Person" required="true" />
<cc:attribute name="size" type="int" required="false" default="50" />
<cc:attribute name="required" type="boolean" required="false" default="false" />
<cc:attribute name="requiredMessage" type="String" required="false" default="required" />
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<p:autoComplete id="personAutoComplete"
style="position: relative; padding-right:5px"
value="#{cc.attrs.person}"
var="personVar"
itemValue="#{personVar}"
itemLabel="#{personVar.fullFamiliarName}"
forceSelection="true"
completeMethod="#{personAutoComplete.byGeneralCriteria}"
converter="PersonConverter"
minQueryLength="3"
maxResults="50"
scrollHeight="400"
size="#{cc.attrs.size}"
required="#{cc.attrs.required}"
requiredMessage="#{cc.attrs.requiredMessage}"
title="enter users first name, last name or login" >
</p:autoComplete>
<h:message for="personAutoComplete" errorClass="redError" class="redError"/>
</cc:implementation>
在我的xhtml中调用:
<my:personLookup id="newRoleAdminPerson"
person="#{roleList.newRoleAdminPerson}"
required="true" requiredMessage="Admin Name is required"/>
关于java - primefaces requiredMessage 在 p :autoComplete moved into custom component 时丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15236008/
C++ 中的标准“映射”容器允许您插入右值: T x; std::map m; // m[1]; // populate "1" auto it = m.insert(std::make_pair(
我们知道 std::move does not actually move anything .它只是将左值引用 (&) 转换为右值引用 (&&)。 那么在下面的例子中,拷贝构造函数是如何被调用的呢?
http://en.cppreference.com/w/cpp/language/rule_of_three 几个月前我开始使用 c++11并观看了五人规则。 所以..我开始将复制构造函数/复制赋值
这个问题在这里已经有了答案: In what scenarios should I expect to explicitly need to implement a move constructor
我有一个类似于下面的对象,我正在尝试为它实现一个 move 构造函数,这样你就可以为 std::vector 插入一个. struct Mesh { std::vector vPoint
这个问题在这里已经有了答案: How to create an std::function from a move-capturing lambda expression? (3 个回答) 关闭7年前
我有一个源文件,我正在使用它 move 到一个存档目录 关闭。 move (srcfile,dstdir) 但是当存档目标目录中已经存在相同的文件时,它会抛出一个错误,指出无法 move 文件已经存在
这应该有效,但无效并给出以下错误(如下)。 我读过几篇关于 stackoverflow 的帖子 here和 here但在这种情况下似乎没有一个好的答案。我真的希望我只是错过了一些愚蠢的东西,我已经在这
我似乎无法弄清楚为什么会这样。当我运行以下代码时: $uref = APACHE_ROOT . UPLOAD_PATH . $applicant . "_ref_{$email}_{$year}";
我似乎无法弄清楚为什么会这样。当我运行以下代码时: $uref = APACHE_ROOT . UPLOAD_PATH . $applicant . "_ref_{$email}_{$year}";
我的表格行可以上下 move ,但我的问题是数据表行取代了表格标题(第一行)。 我想要一个固定的第一行,这样当您单击向上箭头时,您就不会向上 move 该行来替换标题。 我尝试了一些条件逻辑来检查当前
正如我在Move constructor/operator=中询问的那样,过了一段时间,我同意并接受了这个问题的正确答案,我只是在想,是否有类似“移动析构函数” 这样的东西会在每次移动的对象上调用会有
如果我有一个像这样的 C 类: class C { std::string s; public: C(std::string& s) : s(s) {} C(std::str
我是 C++11 的新手,发现 move 语义和复制省略非常适合编写优雅高效的代码。不过我有一些问题想请教。这里我写了一个模板类 matrix.hpp 并用它来测试 move 语义的行为。 #incl
我在我们的项目中遇到了这样的代码: class A { public: A(A&& obj): valid_(false), data_(obj.data_) {} //... void
move 语义在这个例子中是如何工作的: struct test { int ii[10]; int i; }; test f() { test a; std::cou
假设我有一个类型为 A 的对象 a。 如果我想将其 move 到函数foo(A)。 一个选择是执行 foo(std::move(a)),这将调用 move 构造函数。 但是,假设我正在使用一个我无法控
我用 move 复制构造函数和 move 复制赋值运算符创建了一个简单的应用程序,并且在它们中的每一个上我都做了一个 cout 语句来告诉我,它们正在执行。但是在执行过程中,我没有看到 move 复制
相关问题: Why this move constructor is not called wtih rvalue temporary? [duplicate] Move Constructor vs
我正在努力研究 move 构造函数,并希望通过这个问题获得更多见解。这是一个简单的类。 class A { private: vector Bs; public: /* ..
我是一名优秀的程序员,十分优秀!