Использование jTable (плагин jQuery) с Spring MVC - PullRequest
0 голосов
/ 10 января 2019

Мне нужна помощь из-за ошибки, которую я не могу устранить в одиночку. Я строю проект, который использует Spring MVC и jTable (jTable.org). Я получаю сообщение об ошибке. Не удалось загрузить ресурс: сервер отвечал с состоянием 404 (не найдено) каждый раз, когда пользователь пытается получить доступ к странице. ( 1.png ). В журналах я пытаюсь получить request.getParameter («действие»), и он возвращает ноль.

Это мой JSP:

<%@ include file="/WEB-INF/jsp/header.jsp"%>

<div class="container-fluid col-md-8 col-md-offset-2 content">
        <h2>Component Management</h2>
        <div id="ComponentManagementContainer"></div>
</div>

<%@ include file="/WEB-INF/jsp/footer.jsp"%>

Это моя реализация jTable, созданная по образцу после демонстрации в jTable Demo :

$(document).ready(function () {
    $('#ComponentManagementContainer').jtable({
        title: '<center> DETAILS DASHBOARD </center>',
        actions: {
            listAction: 'componentMgmt?action=list'
        },
        fields: {
            componentId: {
                title: 'Component ID',
                list: true,
                key: true,
                edit: true,
                input: function (data) {
                    return '<input type="text" readonly class="jtable-input-readonly" name="name" value="' + data.value + '"/>';
                }
            },
            componentDescription: {
                title: 'Component Description',
                list: true,
                edit: true,
                width: '15%',
                input: function (data) {
                    return '<input type="text" readonly class="jtable-input-readonly" name="name" value="' + data.value + '"/>';
                }
            }
        }
    });
    $('#ComponentManagementContainer').jtable('load');
});

А вот мой класс контроллера:

public class ComponentManagementController implements Controller {
    @RequestMapping(value = "/componentMgmt")
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

        String action = (String) request.getParameter("action");
        List < Components > components = new ArrayList < Components > ();
        ComponentServiceImpl componentServiceImpl = new ComponentServiceImpl();

        System.out.println("====================================inside test request.getParameter(action)" + " " + request.getParameter("action")); // PRINTS NULL
        if (action != null) {
            if (action.equals("list")) {
                try {
                    //Fetch Data from db
                    components = componentServiceImpl.getAllComponentValues();

                    //Convert Java Object to Json
                    Gson gson = new Gson();
                    JsonElement element = gson.toJsonTree(components, new TypeToken < List < Components >> () {}.getType());
                    JsonArray jsonArray = element.getAsJsonArray();
                    String listData = jsonArray.toString();

                    //Return Json in the format required by jTable plugin
                    listData = "{\"Result\":\"OK\",\"Records\":" + listData + "}";
                    response.setContentType("application/json");
                    response.getWriter().print(listData);
                    System.out.println(listData);
                } catch (Exception ex) {
                    String error = "{\"Result\":\"ERROR\",\"Message\":" + ex.getStackTrace() + "}";
                    response.getWriter().print(error);
                }
            }
        }
        return new ModelAndView("componentMgmt");
    }

}

servlet.xml

<?xml version="1.0" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename">
            <value>messages</value>
        </property>
    </bean>

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="requestContextAttribute" value="requestContext" />
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

    <bean id="urlMapping"
        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/ComponentManagement.bi">ComponentManagementController</prop>
            </props>
        </property>
    </bean>

    <bean id="ComponentManagementController"
        class="com.webapp.controller.ComponentManagementController" />
</beans>

Как получить значение action = list, отправленное из jTable? Я думаю, что это причина ошибки 404. Пожалуйста, помогите.

Заранее спасибо!

...