Java 如何在Struts 2中创建自定义URL?比如www.twitter.com/goodyzain
我正在做一个项目,我想为每个用户提供唯一的URL 例如:Java 如何在Struts 2中创建自定义URL?比如www.twitter.com/goodyzain,java,jsp,url,struts2,wildcard-mapping,Java,Jsp,Url,Struts2,Wildcard Mapping,我正在做一个项目,我想为每个用户提供唯一的URL 例如: www.SocialNetwork.com/jhon www.SocialNetwork.com/jasmine 到目前为止,我能够做到这一点: www.SocialNetwork.com/profiles/jasmine 这里profiles是我的操作,在这里我可以通过 /WEB-INF/jsp/profile.jsp 但我想实现这样的目标: www.SocialNetwork.com/jasmine 只需使用域名和用户
www.SocialNetwork.com/jhon
www.SocialNetwork.com/jasmine
www.SocialNetwork.com/profiles/jasmine
profiles
是我的操作,在这里我可以通过
/WEB-INF/jsp/profile.jsp
但我想实现这样的目标:
www.SocialNetwork.com/jasmine
www.twitter.com/username
如何做到这一点?试试这个。这可能有用。使用自由标记使用
$
/WEB-INF/jsp/profile.jsp
如果您想在通配符映射中使用命名模式,那么应该在
struts.xml
中配置以下内容:
现在假设com.example.actions.ViewProfileAction
bean有一个属性username
,方法execute
返回一个SUCCESS
结果。然后,您可以将根命名空间“/”
中配置的操作映射到您的包
/WEB-INF/jsp/profile.jsp
您可以使用OGNL在JSP中获取名称
还要注意的是,您应该部署到根上下文中,以便
your.domain.com/username
映射到您的操作。那么,如果您不希望操作名出现,为什么要将profiles/
放在操作名前面呢?我不需要将配置文件放在URL中……对于用户来说,它应该很简单……像域名/用户名……简单一个……所以从操作名中删除它。你的意思是告诉我。。。但是问题是jasmine是一个用户名…我没有任何动作类,所以我可以处理这个名字并重定向到他的个人资料页面…就像这样。。。或者你能告诉我怎么做吗…?它会很好的…我希望URL看起来像这样。。。SocialNetwork/jasmine不喜欢SocialNetwork/profiles/jasmine我不想在URL中调用配置文件操作…所以不要使用配置文件。仅使用操作名称=“${username}”。SocialNetwork是域名,Jasmine是用户名…Profiles是操作名…我不想让用户输入操作名,即Profiles…我只想让他们输入域名/用户名注意:URL中没有调用操作名我投票支持你的问题。这是个好问题。我会处理它。如何从登录表单调用此操作?我尝试了like,但它只调用了.action,比如localhost:8080/CustomURL/.action,当我执行相同的操作时,会得到null操作映射。我做错了什么吗?很抱歉,我错过了web.xml中的条目:(