Получить Paremeter от весенней загрузки Url - PullRequest
0 голосов
/ 04 июля 2018

Здравствуйте, есть способ получить значение из URL без запроса,

У меня есть index.html в статической папке,

Внутри index.html я пытаюсь перенаправить на мою страницу классов контроллеров с помощью

<a href="/requesthandler?q=myvalue">

Затем он переходит к

requesthandler.html

в браузере я вижу

localhost:8080/requesthandler?q=mayvalue

И после этой части все мои классы контроллеров запустились, и у меня есть пользователь

агенты после того, как моя работа закончена, я хотел бы перенаправить на

/ myvalue.html

Я могу следовать этому, если получу значение параметра из URL

<a href="/mayvalue">

Резюме: Я хотел бы посетить в порядке таких страниц.

http://localhost:8080/index.html(In static folder)

http://localhost:8080/requesthandler?q=mayvalue(I'm goes there with GetMapping return string requesthandler)

http://localhost:8080/mayvalue

Я действительно новичок в весенней загрузке, поэтому, если в тимелии этого недостаточно, что мне делать в классе ApplicationRun.

Большое спасибо:)

EDIT: мой класс контроллера, как это

  @GetMapping("/requesthandler")
    public String requesthandler
        (
                @RequestHeader(value="User-Agent") String userAgent,
                @RequestHeader(value = "host") String host,
                Model model
                )
{

    UserAgentStringParser parser = UADetectorServiceFactory.getResourceModuleParser();
    ReadableUserAgent agent = parser.parse(userAgent);
    Timestamp timestamp = new Timestamp(System.currentTimeMillis());

    this.host=host;
    this.deviceCategory=agent.getDeviceCategory().getName();
    this.operatingSystem=agent.getOperatingSystem().getName();
    this.typeName=agent.getTypeName();
    this.browserName=agent.getName();
    this.browserIcon=agent.getIcon();
    this.deviceProducer=agent.getProducer();
    this.versionNumber=agent.getVersionNumber().toVersionString();
    this.timeStampLong=timestamp.getTime();



    sendMessage(host,deviceCategory,operatingSystem,typeName,browserName,browserIcon,deviceProducer,versionNumber,timeStampLong);


    return "requesthandler";
}

Ответы [ 3 ]

0 голосов
/ 04 июля 2018

Следующий код может вам помочь.

@GetMapping("/requesthandler")
public String requesthandler(
                @RequestParam String q,
                @RequestHeader(value="User-Agent") String userAgent,
                @RequestHeader(value = "host") String host,
                Model model){

    //your code

    return q;
}
0 голосов
/ 04 июля 2018

Вы можете получить определенный параметр запроса или даже всю карту параметров запроса:

public String myHandler(
  @RequestParam(value="q") String q,
  @RequestHeader(value="User-Agent") String userAgent
) 
{
   ...
}

или

public String myHandler(
  @RequestParam Map<String, String> parms,
  @RequestHeader(value="User-Agent") String userAgent
)
{
  String q = parms.containsKey("q") ? parms.get("q") : "";
   ...
}

Если вы не хотите использовать аннотацию RequestHeader, добавьте параметр HttpServletRequest-Parameter к методу и получите заголовок из запроса:

public String myHandler(HttpServletRequest request, @..., ...)
{
   String headerValue = request.getHeader("xyz");
   // or have a look at existing Headers with request.getHeaderNames();
   ...
}
0 голосов
/ 04 июля 2018

Вы можете использовать @ RequestParam в параметре метода вашего контроллера.

например:

@GetMapping("/requesthandler")
public String requesthandler
    (
            @RequestHeader(value="User-Agent") String userAgent,
            @RequestHeader(value = "host") String host,
            @RequestParam("q") String variableName,
            Model model
            ){
    /*Body*/
}

Пожалуйста, посмотрите на https://www.journaldev.com/3358/spring-requestmapping-requestparam-pathvariable-example#spring-requestparam.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...