Как определить, был ли параметр “отправлен” или “geted” от Java?

Мое решение

Мои элементы кнопок HTML в моей всегда видимой навигации:

<a href="#mmenu" class="mobile-nav">Open current menu panel</a>
<a class="mobile-lang">Open languages panel</a>

Мой JS

         var currentMMStep = "menu-panel";

         $("#mmenu").mmenu({
            // options
            pageScroll: {
                  scroll: true,
                  update: true // pageScroll options
                },
            extensions: [
                "pagedim-black",
                "position-front",
                "position-right",
                "shadow-panels"
            ],
            navbars: [{
               "position": "top",
               "type": "tabs",
               "content": [
                  "<a href='#menu-panel' id='the-menu-panel'>" + mmenuMenu + "</a>",
                  "<a href='#languages-panel'>" + mmenuLanguages + "</a>"
               ]
            }]

        }, {
         // configuration
            clone: false,
            offCanvas: {
                pageSelector: "#page-wrap"
            }
        });

        var api = $("#mmenu").data( "mmenu" );

        $(".mobile-lang").on("click", function() {
            api.open().openPanel( $("#languages-panel") );
        });

        api.bind( "openPanel:before", function( $panel ) {
            if(!$("#languages-panel").hasClass("mm-panel_opened")){
                currentMMStep = $(".mm-panel_opened").attr("id");
                $("#the-menu-panel").attr('href', "#" + currentMMStep);
            }
        });
        api.bind( "openPanel:finish", function( $panel ) {
            if(!$("#languages-panel").hasClass("mm-panel_opened")){
                currentMMStep = $(".mm-panel_opened").attr("id");
                $("#the-menu-panel").attr('href', "#" + currentMMStep);
            }
        });

        api.bind("closeAllPanels:before", function() {
            $("#the-menu-panel").data('href', "#" + currentMMStep);
        });

        //because we alter the #menu-panel href on the Menu tab it removes the selected class when clicking the mm-navbar__title...
        $(".mm-navbar__title").on("click", function() {
            setTimeout(function(){ 
            $(".mm-navbar_tabs a:first-child").addClass("mm-navbar__tab_selected");
            }, 40);
        });
11
задан Tiny 6 December 2013 в 06:26
поделиться

6 ответов

Можно использовать request.getMethod () для получения любого Метода. Я использую HandlerInterceptor для этого.

проверка этот код:

public class LoggingMethodInterceptor implements HandlerInterceptor {

Logger log = LoggerFactory.getLogger(LoggingMethodInterceptor.class);

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
        throws Exception {
    log.info("[START]  [" + request.getMethod() + "] [" + request.getRequestURL() + "] StartTime: {} milliseconds",
            System.currentTimeMillis());
    return true;
}
0
ответ дан 3 December 2019 в 02:02
поделиться

Нет прямого пути. Непрямой - проверьте .getQueryString ()

5
ответ дан 3 December 2019 в 02:02
поделиться

HttpServletRequest.getMethod () :

Возвращает имя метода HTTP, с помощью которого был выполнен этот запрос, например GET, POST или PUT. То же, что и значение переменной REQUEST_METHOD CGI.

Все, что вам нужно сделать, это:

boolean isPost = "POST".equals(request.getMethod());

Также я действительно не понимаю, почему вы просто не использовали request.getParameter ("somename") для получения значений, отправленных в качестве параметров запроса. Этот метод возвращает параметр независимо от того, был ли запрос отправлен через GET или POST :

Параметры запроса - это дополнительная информация, отправляемая с запросом. Для сервлетов HTTP параметры содержатся в строке запроса или опубликованных данных формы.

Это намного проще, чем пытаться разобрать getQueryString () самостоятельно.

27
ответ дан 3 December 2019 в 02:02
поделиться

Почему бы вам не начать с проверки параметров строки запроса, если вы их не видите, принять сообщение и затем откопать переменные формы?

1
ответ дан 3 December 2019 в 02:02
поделиться

Если вы пишете сервлет, вы можете сделать это различие по тому, вызывается ли метод doGet или doPost .

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

 //Set a variable or invoke the GET specific logic
   handleRequest(request, response);

}

public void doPost(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException{

 //Set a variable or invoke the POST specific logic
 handleRequest(request, response);

}


public void handleRequest(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException{

 //Do stuff with the request

}
2
ответ дан 3 December 2019 в 02:02
поделиться

Я знаю, что это не решает вашу проблему, но, если я правильно помню, при использовании Struts ActionForm будет заполнен, если ваши переменные отправлены в строке запроса или в теле сообщения.

Я нашел исходный код для класса RequestUtils, возможно, вам нужен метод "populate":

http://svn.apache.org/repos/asf/struts/struts1/trunk/core/src /main/java/org/apache/struts/util/RequestUtils.java

0
ответ дан 3 December 2019 в 02:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: