我想写一个有点复杂的web gui应用程序.它将用于通过显示面板编辑某些内容,并允许用户拖动项目以编辑内容.
这个解释有些抽象,但重点是我正在寻找一种现代的gui写作技术,越是标准,我就越有可能找到使用它的信息和样本.
我一直在使用JavaFaces编写一些简单的网页,并且已经看过RichFaces以编写上述应用程序.我很想听到类似技术的推荐(例如 - 用来写这个网站的是什么?)
谢谢!!!
更新:感谢您的答案到目前为止,由于我被要求更多说明,我将尝试解释应用程序的使用:它将用于编辑复杂的脚本.将有一个面板包含脚本的操作(阶段),另一个面板将显示当前所选操作的内容.对于每种操作类型,将有一组不同的属性要修改.您可以通过将操作拖动到新位置(有点像powerpoint幻灯片管理器或flickr照片管理器)来重新排序操作,并以这种方式复制它们.动作属性面板的内容将能够显示各种类型的内容,如html文本和按钮以及各种内容.
希望有所帮助.再次感谢!
Update2:在阅读了这个StackOverflow线程后,我倾向于RichFaces,因为它提供了广泛的支持和标准化.
我有一个如下所示的列表:
<span id="contacts_tab_contacts_list_list">
<li><span id="contact_35">John</span>
</li>
<li><span id="contact_36">Ron a</span>
</li>
<li><span id="contact_33">Ron b</span>
</li>
<li><span id="contact_34">35</span>
</li>
<li><span id="contact_39">33</span>
</li>
<li><span id="contact_37">66</span>
</li>
<li><span id="contact_38">77</span>
...
</span>
Run Code Online (Sandbox Code Playgroud)
我有一个<input>用来过滤列表的jQuery.我试着用这两jQuery行来做:
$("#contacts_tab_contacts_list_list").children().hide();
$("#contacts_tab_contacts_list_list:contains('" + searchValue + "')").show();
Run Code Online (Sandbox Code Playgroud)
因此,例如,输入Ron到搜索框中会让contact_36并contact_33在列表中唯一可见的元素.该hide()部分有效.在show()没有.
我究竟做错了什么?(假设searchValue在这种情况下具有正确的值Ron)
有一个更好的方法吗?
谢谢!
我正试图为我的ajaxified网站获得一个'加载'div.使用JSF 2.0的f:ajax标签将ajax添加到网站并"尝试" div使用jQuery $(document).ajaxStart函数显示loadin .
jQuery代码部分如下所示:
$(document).ajaxStart(function(){
console.log("ajax start");
$('#ajaxBusy').show();
}).ajaxStop(function(){
console.log("ajax end");
$('#ajaxBusy').hide();
});
Run Code Online (Sandbox Code Playgroud)
永远不会调用日志函数.任何想法为什么?JSF ajax和javascript ajax不能一起工作吗?
谢谢!
我已经阅读了一些关于在JSF 2中编写复合组件甚至关于定义嵌套复合组件的文章,但我没有找到定义可以接受未定义数量的子组件的复合组件的示例.
我希望能够创建一个复合组件,可以使用与此类似的方式:
<special:fieldGroup>
<special:field name="x" value="..."/>
<special:field name="y" value="..."/>
...
</special:fieldGroup>
Run Code Online (Sandbox Code Playgroud)
是否有关于如何使用新的JSF 2语法实现此目的的示例或解释?
谢谢!
嗨有这个奇怪的问题,我使用的Composite Component是我写的,我从之前使用的CC(componentTypebean)的支持bean获取值
我不知道如何更好地描述这个,而不仅仅是显示代码.我将尝试简要介绍并删除多余的部分:这是Composite Component定义:
<cc:interface componentType="dynamicFieldGroupList">
<cc:attribute name="coupletClass" />
<cc:attribute name="form" default="@form"/>
<cc:attribute name="list" type="java.util.List" required="true"/>
<cc:attribute name="fieldNames" type="java.util.List" required="true" />
</cc:interface>
<cc:implementation>
<h:dataTable value="#{cc.model}" var="currLine">
<h:column>
<h:outputText id="inner_control_component" value="Inner Look at currLine:#{currLine}"/>
</h:column>
</h:dataTable>
</cc:implementation>
Run Code Online (Sandbox Code Playgroud)
CC bean定义:
@FacesComponent(value = "dynamicFieldGroupList")
// To be specified in componentType attribute.
@SuppressWarnings({ "rawtypes", "unchecked" })
// We don't care about the actual model item type anyway.
public class DynamicFieldGroupList extends UIComponentBase implements
NamingContainer
{
private transient DataModel …Run Code Online (Sandbox Code Playgroud) 我知道美元符号$是指jQuery对象,但我不知道后面的花括号{}.
是${variable_name}指一个jQuery属性?
谢谢.
我有这个字符串,我在JAVA中生成并传递给javascript进行解析.
这有效:
var childString = '[{title: "Item 1"},{title: "Folder 2", isFolder: true,children: [{title: "Sub-item 2.1"},{title: "Sub-item 2.2"}]},{title: "Item 3"}]';
var childArray = eval(childString);
Run Code Online (Sandbox Code Playgroud)
但我到处都读过,eval == evil所以我正在研究JSON的解析方式.我试过用JSON.parse(childString),但是我收到了一个错误.
我怎么能以JSON的方式做到这一点?
谢谢!
我试图理解为什么某些东西在jQuery中的工作方式.当我想应用jQuery扩展,例如datatables时,我运行命令:
$("#some_id").datatables(.. parameters ..);
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会这样,显然DOM元素datatables()事先没有方法.
谢谢!
这个问题与此处的问题类似,但该解决方案在此处不起作用.
以这个简单到最大的例子为例:
<h:form>
<h:inputText required="true" value="#{mrBean.someValue}" />
<h:inputText required="true" value="#{mrBean.someValue2}" />
<h:commandButton value="Submit">
<f:ajax execute="@form" />
</h:commandButton>
<h:commandButton immediate="true" action="#{mrBean.clearAllValues}" value="Clear">
<f:ajax render="@form" />
</h:commandButton>
</h:form>
Run Code Online (Sandbox Code Playgroud)
和豆代码:
public void clearAllValues() {
setSomeValue(null);
setSomeValue2(null);
}
Run Code Online (Sandbox Code Playgroud)
采取这种情况:
我希望这个场景能够清除输入值,但它不会恢复"X",这是先前提交的值.它实际上从来没有真正运行mrBean.getSomeValue()在bean上(这将返回null并清除输入字段)
问题与JSF不能很好地处理必填字段和立即有关.我想知道是否有人设法克服了这个问题.
谢谢!本.
例:
<h:form>
<h:selectOneMenu value="#{bean.timezone}>
<f:selectItems value="#{bean.availableTimezones} ... >
<f:ajax render="currenttime" />
</h:selectOneMenu>
</h:form>
<h:form id="currenttime">
<h:outputText value="#{bean.currentTime}" >
<f:convertDateTime dateStyle="short" type="both" timeZone="#{bean.timezone}" />
</h:outputText>
</h:form>
<!-- bean.currentTime is of type 'Date' -->
Run Code Online (Sandbox Code Playgroud)
在该示例中,更改时区应该使文本currenttime显示在适当的时区.但事实并非如此.
我想这是因为转换器是在"应用请求"阶段计算的,所选时区的值是在"更新模型"阶段更新的.
我对吗?我不应该使用转换器吗?
谢谢!