昨天我看到了一个关于Java Server Faces 2.0的演示文稿,虽然我现在是一个快乐的ASP.NET MVC/jQuery开发人员,但它看起来确实令人印象深刻.我最喜欢JSF的是大量支持AJAX的UI组件,这些组件似乎比ASP.NET MVC更快,特别是在AJAX重型站点上.集成测试看起来也很不错.
由于演示文稿只强调了JSF的优点,我也想听听另一方面的意见.
所以我的问题是:
我想要做的是创建具有交互式SVG内容的网页.我使用Batik作为Java桌面应用程序来渲染我的SVG并收集像mouseclick这样的UI事件.现在我想以相同的方式在我的JSF(Primefaces)Web应用程序中使用这些SVG图形文件.
试着开始,我发现这不起作用:
<h:graphicImage id ="gloob"value ="images/sprinkverks.svg"alt ="Graphic Goes Here"/>
我不介意做一些阅读以起到学习曲线.一些谷歌搜索没有发现任何有用的东西,这有点令人惊讶.
我所做的建议我必须使用f:verbatim标签执行此操作,就像我手动编写HTML一样.然后我必须添加一些脚本来捕获SVG事件并将它们反馈回AJAX代码.如果我必须尽我所能,但我希望有一种更容易和自动化的方式.
所以问题是:
非常感谢任何指针.
我把它发布到PrimeFaces用户论坛,但我认为他们太忙了,无法调查,所以我想我会试试这里.
我有服务器端字符串,其中有标记,所以当我想要它呈现时,我这样做:
            <p:panel>                    
                <f:verbatim>
                    #{daBean.markedUpString}
                </f:verbatim>
            </p:panel>
这样可以正常工作,但如果在p:dataTable中使用相同的标记,则无论是否使用p:panel enclosure.渲染的是div class ="ui-dt-c"元素,其中没有任何内容.为了测试,如果我取出f:verbatim标签,标记的文本将被转义并呈现.
我不知道这是否应该被认为是一个错误,但有没有人知道解决这个问题?这是PrimeFaces 3.0.M3.