2

struts2 と jquery プラグインを使用して Web アプリケーションを構築しています。jquery プラグインに含まれる「インジケーター」機能を使用しようとしています。実際、ユーザーが何らかのアクション (ボタンのクリック、リストの選択など) を実行したときに、「読み込み中...」というポップアップを表示したいと思います。

だから私はこのマスターページMasterPage.jspを持っています:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>  
<head>
<s:url id="customTheme" value="/template/themes" ></s:url>
<sj:head defaultIndicator="indictor" jqueryui="true" jquerytheme="warrtheme" customBasepath="%{customTheme}" />
</head>
<body>

<sj:dialog id="indicator"
           title="Loading"
           autoOpen="false"
           modal="true"
           resizable="false">
<table>
    <tr>
        <td>&nbsp;</td>
        <td><img src="<s:url value="/images/indicator.gif" />" /></td>
        <td>Loading...</td>
    </tr>
</table>
</sj:dialog>
</body>
</html>

そして、この通常のページ User.jsp があります。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>

<div class="content">
    <s:url var="openViewUser" namespace="/administration" action="administration_utilisateur_open" />
    <sj:a href="%{openViewUser}" id="divUserLink" targets="divUser" indicator="indicator">

    <div id="divUser"></div>
</div>

上記のコードのリンクをクリックすると、ポップアップが表示されません。手がかりはありますか?

前もって感謝します。

4

2 に答える 2

1

私のために働く完全なコードを投稿したいのですが...

MasterPage.jsp で:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>  
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<s:url id="customTheme" value="/template/themes" ></s:url>
<sj:head jqueryui="true" jquerytheme="warrtheme" customBasepath="%{customTheme}" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<script type="text/javascript">
$.subscribe('onBeforeLoading', function(event,data) {
    $("#indicator").dialog('open');   
}); 

$.subscribe('onCompleteLoading', function(event,data) {  
    $("#indicator").dialog('close');   
}); 
</script>
</head>

<body>

<sj:dialog id="indicator"
       title="Warning"
       autoOpen="false"
       modal="true"
       resizable="false">
<table>
    <tr>
        <td>&nbsp;</td>
        <td><img src="<s:url value="/images/indicator.gif" />" /></td>
        <td>Loading, please wait...</td>
    </tr>
</table>
</sj:dialog>

</body>
</html>

そして User.jsp で:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>

<div class="content">
    <s:url var="openViewUser" namespace="/administration" action="administration_utilisateur_open" />
    <sj:a href="%{openViewUser}" id="divUserLink" targets="divUser" onBeforeTopics="onBeforeLoading" onCompleteTopics="onCompleteLoading" >Click me</sj:a>
    <br/>
    <br/>
    <div id="divUser"></div>
</div>
于 2013-02-04T08:58:46.543 に答える
0

開いているトピックをサブスクライブするか、 onclickイベントをトラップする必要があります。クリック時にダイアログを表示するとします。

   function openDialog() 
    {
        $("#indicator").dialog('open');
    }

ajaxが正常にロードされたら、これを使用してダイアログボックスを閉じます

$("#indicator").dialog('close'); 
于 2013-02-04T07:49:44.253 に答える