包括JSP并每次在不同的行中显示它

时间:2014-08-27 07:10:04

标签: html jsp

我正在开发一个应用程序,我需要在页面中显示订单的配置数据。

因此,工作模型是当用户点击按钮时,会触发一个事件并调用dojo调用,该调用与业务层交互并获取配置数据并在其中一个内部HTML中加载响应(通过js)我的jsp页面,它包含在另一个jsp页面中。

现在,我试图打破数据并显示它。这里的问题是,以前我只有一个电话和一个响应。现在,有多个电话,每个电话都有响应。因此,应用程序按原样工作并水平显示配置。因为,我包括一个jsp页面,每次触发请求时,数据都会显示在jsp中。我希望数据应该一个接一个地显示。那就是:

First JSP  
Second JSP 
Third JSP 
'n'   JSP

但是,jsp的显示为

  

第一个JSP第二个JSP第三个JSP'n'JSP

有人可以帮忙吗?任何建议都会有所帮助。感谢

JSP:

<tr id='GRP_<c:out value="${id}"/>' <c:out value="${groupStyle}" escapeXml="false"/>>
     <c:if test="${!sdConfigUIGroup.loadOnDemand}">
        <jsp:include page="Service.jsp"/>
      </c:if>
    </tr>

JS:

function testFunc(arg0, data, response, request) {

if (arguments == null || arguments.length < 4 || !response.responseText || response.responseText == null || !request.content || request.content == null || !request.content.groupUniqueId
        || request.content.groupUniqueId == null) {
    return;
}

var responseHTML = response.responseText;
var id= request.content.id;

var newElement = document.getElementById("GRP_" + id);
innerElement = document.createElement("td");
newElement.appendChild(innerElement);
innerElement.innerHTML = responseHTML;



var afterAddAnotherFunc = 'afterAddAnother_' + groupUniqueId;
if (typeof window[afterAddAnotherFunc] == 'function')
    runFunction(afterAddAnotherFunc, []);

loadAgain(id);
}

2 个答案:

答案 0 :(得分:0)

签入JSP代码不会在同一个TR元素中创建所有TD元素。

E.g 下一个表显示数据

第一个JSP第二个JSP第三个JSP&#39; n&#39; JSP

<table>
    <tr>
        <td>First JSP</td>
        <td>Second JSP</td>
        <td>Third JSP</td>
        <td>'n' JSP</td>
    </tr>
</table>

下一个表显示数据。

第一个JSP
第二个JSP
第三个JSP
&#39; N&#39; JSP

<table>
    <tr>
        <td>First JSP</td>
    </tr>
    <tr>
        <td>Second JSP</td>
    </tr>
    <tr>
        <td>Third JSP</td>
    </tr>
    <tr>
        <td>'n' JSP</td>
    </tr>
</table>

我应该使用自定义Dojo小部件来显示您的数据。查看教程here

答案 1 :(得分:0)

function testFunc(arg0, data, response, request) {

if (arguments == null || arguments.length < 4 || !response.responseText || response.responseText == null || !request.content || request.content == null || !request.content.groupUniqueId
        || request.content.groupUniqueId == null) {
    return;
}

var responseHTML = response.responseText;
var groupUniqueId = request.content.groupUniqueId;


var newElement = document.getElementById("GROUP_" + groupUniqueId);

//Creation of table/row/column
//newTable = document.createElement("table");
//newTable.setAttribute("id","DTABLE");
outerElement = document.createElement("tr");
outerElement.setAttribute("id","DROW");
innerElement = document.createElement("td");
innerElement.setAttribute("id","DCOL");

innerElement.innerHTML = responseHTML;
outerElement.appendChild(innerElement);
//newTable.appendChild(outerElement);
newElement.appendChild(outerElement);


var afterAddAnotherFunc = 'afterAddAnother_' + groupUniqueId;
if (typeof window[afterAddAnotherFunc] == 'function')
    runFunction(afterAddAnotherFunc, []);
showOverlay();
msgBox("Page Loading, please wait...");
loadMore(groupUniqueId);

}

这就是我解决这个问题的方法。我没有单独创建td,而是创建一行,然后在其中添加一列。这个对我有用。感谢您的任何建议:)