如何从表单操作调用自定义URL操作?

前端之家收集整理的这篇文章主要介绍了如何从表单操作调用自定义URL操作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我按照 this post创建了一个自定义URL应用程序.该动作正在被调用,但是url显示的是会话ID

HTTP://本地主机:8080 / CustomURL {用户名} .action; JSESSIONID = 9C1FB3EB633209C18625BBB40EA61000

我想简单地喜欢http:// localhost:8080 / CustomURL / rajesh

请参阅我的Struts.xml

  1. <struts>
  2. <constant name="struts.mapper.alwaysSelectFullNamespace"
  3. value="false" />
  4. <constant name="struts.enable.SlashesInActionNames" value="true" />
  5. <constant name="struts.patternMatcher" value="namedVariable" />
  6. <package name="default" namespace="/" extends="struts-default">
  7. <action name="">
  8. <result name="success">home.jsp</result>
  9. </action>
  10.  
  11. <action name="{username}" class="com.rajesh.struts2.CustomURL"
  12. method="customUrl">
  13. <result name="success">welcome.jsp</result>
  14. </action>
  15.  
  16. </package>

看我的jsp页面

  1. <%@ taglib prefix="s" uri="/struts-tags"%>
  2. <html>
  3. <head>
  4. <title>Struts 2 Custom URL</title>
  5. </head>
  6. <body>
  7. <h1>Struts 2 Custom URL</h1>
  8. <h3>Enter your name below</h3>
  9. <s:form action="{username}">
  10. <s:textfield name="username" />
  11. <s:submit />
  12. </s:form>
  13. </body>
  14. </html>

请参阅下面的java文件.

  1. public class CustomURL extends ActionSupport {
  2.  
  3. private String username;
  4.  
  5. public String getUsername() {
  6. System.out.println("Getter");
  7. return username;
  8. }
  9.  
  10. public void setUsername(String username) {
  11. System.out.println("Setter");
  12. this.username = username;
  13. }
  14.  
  15. private static final long serialVersionUID = -4337790298641431230L;
  16.  
  17. public String customUrl() {
  18. return SUCCESS;
  19. }
  20. }

有任何建议请.

解决方法

首先,如果您不希望用户认为他们的名字有扩展名,您应该摆脱动作扩展.
  1. <constant name="struts.action.extension" value=",action"/>

接下来模式匹配器应该是正则表达式.

  1. <constant name="struts.patternMatcher" value="regex"/>

动作映射

  1. <action name="/CustomURL/{username}" class="com.rajesh.struts2.CustomURL" method="customUrl">
  2. <result name="success">welcome.jsp</result>
  3. </action>

在JSP中,您不需要使用表单标记,而是使用锚标记.并使用已知名称.

  1. <a href="http://localhost:8080/CustomURL/rajesh">Click my name</a>

猜你在找的HTML相关文章