【问题标题】:struts2 jquery indicator dialogstruts2 jquery 指示器对话框
【发布时间】:2013-02-04 07:25:01
【问题描述】:

我正在使用 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>

当我点击上面代码中的链接时,弹出窗口没有出现。 有什么线索吗?

提前致谢。

【问题讨论】:

  • 对吗? ">。我认为应该是
  • 好话。实际上,两者都适用于我的情况。但这并不能解决问题。
  • 是的,那不是问题解决者,我知道我只是想知道这东西是否也有效。

标签: jquery struts2 indicator


【解决方案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>

【讨论】:

    【解决方案2】:

    您必须订阅 open 主题,否则您必须捕获 onclick 事件。假设您想在点击时显示对话框

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

    一旦成功加载了ajax,使用这个关闭对话框

    $("#indicator").dialog('close'); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      相关资源
      最近更新 更多