Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Struts 2中创建自定义URL?比如www.twitter.com/goodyzain_Java_Jsp_Url_Struts2_Wildcard Mapping - Fatal编程技术网

Java 如何在Struts 2中创建自定义URL?比如www.twitter.com/goodyzain

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 只需使用域名和用户

我正在做一个项目,我想为每个用户提供唯一的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.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中的条目:(