Alexander  Tolkachev
Alexander Tolkachev

Reputation: 227

Servlet request parameters on reloading page

I have localization on my page that have url like: http://localhost:8086/patient/order?action=registeredTab but when i change language, it reloads and action dissapears and i get following url: http://localhost:8086/patient/order?language=ru. How can i save action in my url when i change language? I am using jsp and servlets

<form>
        <select id="language" name="language" style="background-color: #003399; color: #f2f2f2" onchange="submit()">
          <option value="en" ${language == 'en' ? 'selected' : ''}>English</option>
          <option value="ru" ${language == 'ru' ? 'selected' : ''}>Русский</option>
          <option value="es" ${language == 'es' ? 'selected' : ''}>Español</option>
        </select>
      </form>

Upvotes: 1

Views: 166

Answers (1)

Shalin Patel
Shalin Patel

Reputation: 1099

Make seprate servlet for internationalization and then append the code given below at the end

String previousURL = request.getHeader("referer");
response.sendRedirect(previousURL);

Now copy past you code with small change i.e. add action to form tag

<form action="changeLanguage">
    <select id="language" name="language" style="background-color: #003399; color: #f2f2f2" onchange="submit()">
      <option value="en" ${language == 'en' ? 'selected' : ''}>English</option>
      <option value="ru" ${language == 'ru' ? 'selected' : ''}>Русский</option>
      <option value="es" ${language == 'es' ? 'selected' : ''}>Español</option>
    </select>
</form>

And you are done with that...

But keep in mind that changeLanguage servlet should just change language it is better if it doesn't do anything else than that....

Upvotes: 1

Related Questions