答案 0 :(得分:2)
您可以使用REST Plugin或convention plugin(有关后续解决方案的详细信息,请参阅this blog post)。其他选项包括servlet过滤或mod_rewrite。
答案 1 :(得分:0)
答案 2 :(得分:0)
我们可以使用struts2实现这一目标。您需要做的就是在操作名称中使用通配符。让我用你的案例解释
http://localhost/users/Santhosh
这就是你想要的结束URL。你想要捕捉价值,即; “Santhosh”在行动支持中。
我假设您准备在末尾添加struts2后缀,即; “.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”应设置为“true”以实现此目的。
这里是动作支持类
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;
}
}
执行此程序后,您将获得填充到userName属性中的“Santhosh”值。