Я хочу URL в поле ниже форматеURL Struts2 с .action
вместо
http://localhost/users?name=abc
Как добиться этого в Struts2?
Я хочу URL в поле ниже форматеURL Struts2 с .action
вместо
http://localhost/users?name=abc
Как добиться этого в Struts2?
Вы можете использовать REST Plugin или convention plugin (см. this blog post для получения более подробной информации о более позднем решении). Другие варианты включают сервлет-фильтрацию или mod_rewrite.
Вы можете использовать http://tuckey.org/urlrewrite/.
Мы можем добиться этого, используя стойки2. Все, что вам нужно сделать, это использовать подстановочные знаки в имени вашего действия. Позвольте мне объяснить ваш случай
http://localhost/users/Santhosh
Это то, что вы хотели в качестве конечного URL. И вы хотели бы получить значение i.e .; «Santhosh» в поддержке действий.
Я предполагаю, что вы готовы добавить суффикс struts2 в конце i.e .; «.action» или «.html» (я настроил расширение своих классов действий как .html).
Просто определить отображение, как показано ниже в struts.xml файле
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="false" />
<constant name="struts.action.extension" value="html" />
<constant name="struts.enable.SlashesInActionNames" value="true"/>
<action name="users/*" class="com.srm.action.UserAction" method="execute">
<param name="userName">{1}</param>
<result name="success" type="tiles">addEditCategory</result>
</action>
</struts>
Если вы заметили выше отображения, «struts.enable.SlashesInActionNames» должно быть установлено «верно» для того, чтобы достичь этого.
Вот класс поддержки действий
public class UserAction extends ActionSupport
{
private static final long serialVersionUID = 1L;
private String userName = null;
public String execute() throws Exception
{
System.out.println("Username: "+userName);
return SUCCESS;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public String getUserName()
{
return userName;
}
}
После выполнения этой программы, вы получите «Сантош» значение населенного в собственность имени пользователя.