미리 도움을 요청 해 주셔서 감사합니다.스프링 MVC, 타일, 다중 컨트롤러
다음 프로젝트에서 Spring MVC를 실험하고있다. 여러 재사용 가능한 "구성 요소"를 렌더링하려면 응용 프로그램에서 일부 웹 페이지가 필요하고 Tiles가이 작업을 수행하는 데 도움이된다고 생각하십니까? 각 구성 요소에는 자체 컨트롤러가 있습니다.
예를 들어 설명해 보면 부분적으로 만 작동합니다. 3 개의 타일이있는 페이지입니다. 세 번째 타일에는 @ModelAttribute 주석을 통해 ArrayList를 클라이언트에 반환하려고하는 컨트롤러가 있지만 뷰가 타일로 포함되면 ArrayList는 비어 있습니다.
여기 *의 -servlet.xml을의 타일 설치는 다음과 같습니다
<tiles-definitions>
<definition name="parent" template="/WEB-INF/jsp/tiles/parent_layout.jsp">
<put-attribute name="header" value="/WEB-INF/jsp/tiles/header.jsp"/>
<put-attribute name="body" value=""/>
<put-attribute name="recordsSection" value=""/>
<put-attribute name="widgetsSection" value=""/>
</definition>
<definition name="_n/list.htm" extends="parent">
<put-attribute name="recordsSection" value="/WEB-INF/jsp/_n/list.jsp"/>
<put-attribute name="widgetsSection" value="/WEB-INF/jsp/_n/widgets.jsp"/>
</definition>
</tiles-definitions>
가 여기에 문제의 타일 뒤에 JSP 코드입니다 :
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
<property name="order" value="0"/>
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles-config/tiles.xml</value>
</list>
</property>
</bean>
<bean id="viewResolver2" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="order" value="1" />
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
여기 내 타일 설정 (tiles.xml)입니다. "widgetsList"표현식은 컨트롤러 메소드에 바인딩되지만이 뷰가 타일로 포함될 때 다시 비어있게됩니다. 여기
<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" isELIgnored="false"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@taglib prefix="display" uri="http://displaytag.sf.net" %>
<h3>Widgets</h3>
<p>widgetsList=${widgetsList}</p>
<div id="displaylist">
<display:table id="items" name="${widgetsList}" cellspacing="0" export="true">
<display:column title="Widget ID" property="widgetId"/>
<display:column title="Widget Name" property="widgetName"/>
<display:column title="Widget State" property="widgetState"/>
</display:table>
</div>
는 컨트롤러의 :
@Controller
public class WidgetController {
@Autowired
private WidgetDaoImpl widgetDao = new WidgetDaoImpl();
@RequestMapping("_n/widgets.htm")
public String widgets() {
return "_n/widgets.htm";
}
@ModelAttribute("widgetsList")
public ArrayList<Widget> getWidgets() {
System.out.println("executing getWidgets()");
ArrayList<Widget> records = widgetDao.listWidgets();
return records;
}
}
내가 "widgets.jsp"는 견해를 직접 액세스은 "widgetsList"속성은이 그것을 반환 타일로 추가 때 그것은 단지의 채워됩니다 아무것도.
여기에 대한 조언을 주셔서 감사합니다.
감사를 사용하여 스프링 컨트롤러에서
http://api.jquery.com/jQuery.getJSON/ JSON 튜토리얼. 나는 그것이 아닌 것을 무언가로 타일을 만들려고 노력하고있는 것 같다.이 시점에서 컴포넌트 기반 프레임 워크를 내 프로젝트에 통합하는 것이이 시점에서 약간의 과잉이 될 수 있습니다. 이후 아마 이런 종류의 일을 아마 6 번 수행해야하기 때문입니다. 결과적으로 내 컨트롤러 클래스 중 일부는 꽤 다루기 힘들어 질 것입니다. 다시 한 번 감사드립니다! – wannabecoder