Как добавить список компонентов в тег определения tiles при переходе с Tiles2 на Tiles 3

#apache-tiles #tiles2 #tiles-3

#apache-tiles #tiles2 #плитки-3

Вопрос:

У нас есть приложение в Tiles2, где у нас есть тег определения tiles, имеющий компонент в атрибуте put-list и работающий хорошо, но не способный перенести их для Tiles 3 совместимый. Кто-нибудь может помочь нам,

пример кода…

 <definition name=".tabs.resource.list" extends=".tabs.resource">
        <put-attribute name="selectedIndex" value="0" />
        <put-attribute name="resourceType" value="1" />
        <put-list-attribute name="tabList">
            <bean classtype="org.test.sample.ui.util.Tab">
                <set-property property="value" value="Tab1" />
                <set-property property="link" value="currentHealthTab1listVisibility.action" />
                <set-property property="mode" value="currentHealth" />
                <set-property property="height" value="21" />
                <set-property property="width" value="102" />
            </bean> 
            <bean classtype="org.test.sample.ui.util.Tab">
                <set-property property="value" value="Tab2" />
                <set-property property="link" value="viewlistTab2listVisibility.action" />
                <set-property property="mode" value="view" />
                <set-property property="height" value="21" />
                <set-property property="width" value="102" />
            </bean>     
        </put-list-attribute> 
    </definition>`
 

org.test.sample.ui.util.Tab переопределяется для класса simplemenuitem

Комментарии:

1. Ищете аналогичную поддержку меню для tiles 3. для tiles2.2 ссылка tiles.apache.org/2.2/framework/tutorial/advanced/menu.html

Ответ №1:

Поскольку компоненты для элемента меню удалены в последней версии tiles, нам нужно будет создать класс сервлета, и сопоставление со страницей jsp использует те атрибуты {в приведенном выше вопросе, которые jsp указал в extends=».tabs.resource» / страница jsp в определении} в web.xml и установите атрибут вв классе мы можем настроить атрибут list и включить ответ сервлета, как показано ниже:

 import java.io.IOException;    
import java.util.ArrayList;    
import java.util.List;    
import javax.servlet.RequestDispatcher;   
import javax.servlet.ServletException;    
import javax.servlet.http.HttpServlet;    
import javax.servlet.http.HttpServletRequest;   
import javax.servlet.http.HttpServletResponse;   
import org.test.sample.ui.util.Tab;   

public class ControlTabNG extends HttpServlet{

public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException{

List<Tab> ControlTabNGtablist = new ArrayList<Tab>();    
Tab ObjTab1 = new Tab();    
    ObjTab1.setValue("Tab1");    
    ObjTab1.setLink("viewlistTab1listVisibility.action");    
    ObjTab1.setMode("View");    
    ObjTab1.setHeight(21);   
    ObjTab1.setWidth(101);   
Tab ObjTab2 = new Tab();   
    ObjTab2.setValue("Tab2");   
    ObjTab2.setLink("viewlistTab2listVisibility.action");   
    ObjTab2.setMode("View");   
    ObjTab2.setHeight(21);    
    ObjTab2.setWidth(101);   
ControlTabNGtablist.add(ObjTab1);   
ControlTabNGtablist.add(ObjTab2);  
request.setAttribute("tabList", ControlTabNGtablist);   
try {   
RequestDispatcher rd=request.getRequestDispatcher("/simplemenuitem/SampleTabNG.jsp");   
            rd.include( request, response);   
} catch (ServletException e) {   
e.printStackTrace();   
}
 

`