Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复合组件mojarra与myfaces中的ajax(使用jquery) 小结:_Ajax_Jsf 2_Composite Component_Myfaces_Mojarra - Fatal编程技术网

复合组件mojarra与myfaces中的ajax(使用jquery) 小结:

复合组件mojarra与myfaces中的ajax(使用jquery) 小结:,ajax,jsf-2,composite-component,myfaces,mojarra,Ajax,Jsf 2,Composite Component,Myfaces,Mojarra,项目:一个复合组件,可以让我过滤列表并更新外部组件 问题是:MyFaces2.1.10有效,Mojarra2.2.1无效,但我想使用JSF2.2 复合组件filteredList.xhtml $(文档).ready(函数(){ $(“[id='choose}{elem.id}']”)。单击(函数(){ $(“[id='{composite.attrs.destinationId}]”).val(“{elem.id}”); $(“[id='{composite.attrs.outputId}]”

项目:一个复合组件,可以让我过滤列表并更新外部组件

问题是:MyFaces2.1.10有效,Mojarra2.2.1无效,但我想使用JSF2.2

复合组件filteredList.xhtml

$(文档).ready(函数(){
$(“[id='choose}{elem.id}']”)。单击(函数(){
$(“[id='{composite.attrs.destinationId}]”).val(“{elem.id}”);
$(“[id='{composite.attrs.outputId}]”).text(“{composite.attrs.valueMask.getMask(elem.id)}”);
$(“[id='{composite.attrs.destinationId}]”).trigger('change');
});
});
$(文档).ready(函数(){
$(“[id='box}{composite.clientId}]”).height({composite.attrs.height})、width({composite.attrs.width});
});
此组件的用法:

使用的类TestFilter:
公共类TestFilter实现FilterInterface
{
私有字符串过滤器;
@凌驾
公共列表doFilter(列表未筛选列表)
{
if(filter==null | | filter.trim().equals(“”)
{
返回未过滤列表;
}
其他的
{
字符串[]s=filter.split(\\s+);
Set filtered=新建LinkedHashSet();
for(字符串f:s)
{
对于(ListFilterElem e:unfilteredList)
{
如果(例如,案例(f))
{
添加(e);
}
}
}
返回新的ArrayList(已过滤);
}
}
@凌驾
公共字符串getFilter()
{
回流过滤器;
}
@凌驾
公共空集合过滤器(字符串过滤器)
{
this.filter=过滤器;
}
}
使用的类TestListFilterElem:
公共类TestListFilterElem实现ListFilterElem
{
私有整数id;
私有列表子列表;
公共TestListFilterElem(整数id,列表子列表)
{
this.id=id;
this.subList=子列表;
}
@凌驾
公共字符串getHtml()
{
StringBuilder buf=新的StringBuilder();
for(字符串s:子列表)
{
buf.追加;
buf.追加(“”);
}
返回buf.toString();
}
@凌驾
公共整数getId()
{
返回id;
}
@凌驾
public Boolean containsIgnoreCase(字符串针)
{
返回getHtml().toLowerCase().contains(needle.toLowerCase());
}
@凌驾
公共列表getList()
{
返回子列表;
}
@凌驾
公共布尔getRenderDatatable()
{
返回false;
}
@凌驾
公共布尔getRenderHtml()
{
返回false;
}
@凌驾
公共布尔getRenderRepeat()
{
返回true;
}
}
使用的类ListFilter:
公共类列表过滤器
{
私人名单;
专用过滤器接口过滤器接口;
公共列表筛选器(FilterInterface FilterInterface)
{
this.filterInterface=filterInterface;
列表=新的ArrayList();
}
public void addListElem(ListFilterElem)
{
列表。添加(元素);
}
公共无效添加列表元素(列表元素)
{
list.addAll(elems);
}
公共列表getList()
{
返回filterInterface.doFilter(列表);
}
公共空集合过滤器(字符串过滤器)
{
过滤器接口。设置过滤器(过滤器);
}
公共字符串getFilter()
{
返回filterInterface.getFilter();
}
}
使用的类掩码:
公共类掩码实现MaskInterface
{
私有整数Reinteger(对象o)引发异常
{
如果(o==null)
{
返回null;
}
else if(o整数实例)
{
返回(整数)o;
}
else if(o字符串实例)
{
返回新的整数((字符串)o);
}
其他的
{
抛出新异常(“无法将“+o.getClass()+”转换为整数”);
}
}
@凌驾
公共字符串getMask(对象o)
{
尝试
{
开关(再积分器(o))
{
案例1:返回“第一行”;
案例2:返回“第二行”;
案例3:返回“第三行”;
默认值:返回“未知”;
}
}
捕获(例外e)
{
返回e.getMessage();
}
}
}
使用的类值掩码:
公共类值掩码
{
私人MaskInterface MaskInterface;
公共价值掩码(MaskInterface MaskInterface)
{
this.maskInterface=maskInterface;
}
公共字符串getMask(对象o)
{
返回maskInterface.getMask(o);
}
}
使用类测试:
@ManagedBean
@会议范围
公开类遗嘱
{
私有ListFilter ListFilter;
私有字符串变量;
公共ListFilter getListFilter()
{
如果(listFilter==null)
{
listFilter=newlistfilter(newtestfilter());
addListFilter.addListElem(新的TestListFilterElem(1,Arrays.asList)(新字符串[]{“this”,“is”,“the”,“first”,“list”}));
addListElem(新的TestListFilterElem(2,Arrays.asList)(新字符串[]{“second”,“list”}));
addListFilter.addListElem(新的TestListFilterElem(3,Arrays.asList(新字符串[]{“(括号“,”,“(括号)))”});
}
返回列表过滤器;
}
public ValueMask getValueMask()
{
返回新的值掩码(new Mask());
}
}
mojarra的Maven依赖项:

com.sun.faces
JSFAPI
2.2.1
com.sun.faces
jsf impl
2.2.1
myfaces的Maven依赖项:

org.apache.myfaces.core
MyFacesAPI
2.1.10
org.apache.myfaces.core
MyFacesImpl
2.1.10
如果使用mojarra,Stacktrace:
SEVERE:Servlet[FacesServlet]的Servlet.service()在路径为[/TestJsfComponents]的上下文中引发了带有根本原因的异常[null]
JAVA