во-первых - тег div не заменяется содержимым контроллера. во-вторых, даже если я заменил некоторые статические данные html, которые я закомментировал, функция js отображается только поверх html, но не заменяет данные таблицы. есть идеи, что я здесь делаю не так?
JSP
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<script type="text/javascript">
function ajaxRem(val) {
var url = '<portlet:resourceURL id="ajaxRem"/>';
var posting = $.post( url, { attachmentID: val } );
posting.done(function( data ) {
//$("#ajaxMarkup").html("<table><tr><td><b>Hello world!</b></td></tr></table>");
$("#ajaxMarkup").html(data);
});
}
</script>
</head>
<body>
<portlet:actionURL var="sendMessageURL"> <portlet:param name="action" value="send"></portlet:param> </portlet:actionURL>
<form:form method="post" id="replyMessageForm" commandName="messageForm" action="${sendMessageURL}" enctype="multipart/form-data">
<portlet:defineObjects /> <br />
<c:forEach items="${messageForm.messageList}" var="message" varStatus="status">
<DIV id="ajaxMarkup">
<TABLE cellpadding="0" cellspacing="0" class="BigPadTable" id="msgTableDisplay" border="0" jsid="msgTableDisplay">
<c:forEach items="${message.attachmentList}" var="attachment" varStatus="count">
<c:set value="${attachment.attachmentID}" var="attachmentID"></c:set>
<%
Integer msgIdInt = (Integer)pageContext.getAttribute("attachmentID");
String attachID = msgIdInt.toString();
%>
<TR name="DataContainer">
<TD name="DocSize_ColumnData" valign="top"
class="tableCell"><SPAN name="DocSize"
class="outputData"><c:out value="${attachment.attachmentSize}"/></SPAN>
</TD>
<TD id="remAttach" name="Document_PageAutoDelete_ColumnData"
valign="top" class="tableCell"><p id="demo" onclick="javascript:ajaxRem(<%=attachID%>);"><u>[Remove]</u></p>
</TD>
</TR>
</c:forEach>
</TR>
</TABLE>
</DIV>
</form:form>
</body>
</html>
Контроллер:
@Controller("sendMessageController")
@RequestMapping("VIEW")
@SessionAttributes(types = MessageForm.class)
public class SendMessageController implements HandlerExceptionResolver{
@ResourceMapping("ajaxRem")
public void ajaxRem(ResourceRequest request, ResourceResponse response, Map<String, Object> model,@Valid @ModelAttribute("messageForm") MessageForm messageForm, BindingResult result,@RequestParam(required=false, value="attachmentID") String attachmentID) throws Exception {
HttpServletRequest servletRequest = PortletUtils.getHttpServletRequest(request);
PortletSession session = request.getPortletSession(false);
String attID = request.getParameter("attachmentID");
...logic to remove a record goes here...
model.put("messageForm", messageForm);
return new ModelAndView("fileList", model);
}
}
fileList.jsp
<!DOCTYPE html>
<html>
<head>
<body>
<portlet:defineObjects /> <br />
<c:forEach items="${messageForm.messageList}" var="message" varStatus="status">
<TABLE cellpadding="0" cellspacing="0" class="BigPadTable" id="msgTableDisplay" border="0" jsid="msgTableDisplay">
<c:forEach items="${message.attachmentList}" var="attachment" varStatus="count">
<c:set value="${attachment.attachmentID}" var="attachmentID"></c:set>
<%
Integer msgIdInt = (Integer)pageContext.getAttribute("attachmentID");
String attachID = msgIdInt.toString();
%>
<TR name="DataContainer">
<TD name="DocSize_ColumnData" valign="top"
class="tableCell"><SPAN name="DocSize"
class="outputData"><c:out value="${attachment.attachmentSize}"/></SPAN>
</TD>
<TD id="remAttach" name="Document_PageAutoDelete_ColumnData"
valign="top" class="tableCell"><p id="demo" onclick="javascript:ajaxRem(<%=attachID%>);"><u>[Remove]</u></p>
</TD>
</TR>
</c:forEach>
</TABLE>
</c:forEach>
</body>
</html>