是否可以使用DOJO向jsp页面中的struts2标签,textfield或复选框添加ajax?如果有,怎么样?

时间:2010-07-28 10:29:52

标签: struts2

是否可以使用DOJO向jsp页面中的struts2标签,textfield或复选框添加ajax?如果是的话怎么样?

或者如果不是我应该使用什么库将ajax应用于单个textField?

谢谢

2 个答案:

答案 0 :(得分:1)

查看Struts2 jQuery Plugin

这包含Struts2的AJAX Textfield Tag

答案 1 :(得分:1)

要使用DOJO,首先要添加像这样的DOJO标签指令

<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>

然后在JSP的头部添加以下行

<sx:head debug="false" cache="false" compressed="true" />

然后从struts标签中监听要应用ajax的事件,如下所示

<s:radio label="Radio" name="rad" list="list2"  
                onchange="show_details();" ></s:radio>

在javascript中捕获此事件并按如下方式发布主题

<script>
    function show_details() {
        dojo.event.topic.publish("show_detail");
    }
</script>

通过struts div标签

在同一个JSP上发布已发布的主题
<sx:div showLoadingText="false" id="details" href="DetailAction" theme="ajax"
    listenTopics="show_detail" formId="frm_demo"></sx:div>

脚本调用中的参数“show_detail”和div标签的listenTopics属性应该完全匹配。该div将侦听主题并获取href属性并与struts.xml中的操作匹配

<action name="DetailAction" class="ajaxdemo.action.DetailAction">
            <result>/Detail.jsp</result>
</action>

它会调用您的操作类ajaxdemo.action.DetailAction

并根据单选按钮给出的值选择值,并呈现以下JSP Detail.jsp

<%@ taglib prefix="s" uri="/struts-tags"%>

<s:if test="lstList != null">
    <s:select list="lstList"></s:select>
</s:if>

并将您在主JSP中定义div标签的输出放置在

您还可以在java-tale.blogspot.com

上查看详细示例