【问题标题】:How to write a pretty URL in Struts 2?如何在 Struts 2 中编写漂亮的 URL?
【发布时间】:2014-10-05 01:40:11
【问题描述】:

我想在 Struts2 中重写我的 URL。

如何自定义不应显示我正在传递的参数的 URL,并且还显示具有不同名称的操作。

我不知道该怎么做。我必须为此使用插件或在struts.xml 中配置我的代码:

<!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.action.extension" value="action" />
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    <constant name="struts.ui.theme" value="simple" />  
    
    
    <include file="struts-user.xml"></include>
    <include file="struts-admin.xml"></include>
    <include file="struts-common.xml"></include>
    <include file="struts-masters.xml"></include>
</struts>

告诉我如何执行以及给我解决方案。

我的网址是这样的:

/operations/MatchPredictionLevel2_index.action?sgt=102&lvl2=1&tn=MatchPredictionLevel2

我想显示我的网址

/operations/prediction 

对用户来说,我想根据其目的对所有 URL 做同样的事情。

【问题讨论】:

    标签: struts2 parameter-passing struts xml-configuration pretty-urls


    【解决方案1】:

    如果您不想显示参数传递,您可以使用this 解决方案。

    要隐藏传递的参数实际上你需要提交表单。您应该阻止 click 事件的默认行为并将其替换为 form 事件。

    如果您还想显示不同名称的操作,可以使用上述过滤器或wildcard mapping

    高级通配符

    从 2.1.9+ 开始可以在动作中定义正则表达式 姓名。要使用这种形式的通配符,以下常量必须是 设置:

    <constant name="struts.enable.SlashesInActionNames" value="true"/>
    <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
    <constant name="struts.patternMatcher" value="regex" />
    

    正则表达式可以有两种形式,最简单的一种是 {FIELD_NAME},在这种情况下,带有 FIELD_NAME 的字段在 操作将填充匹配的文本,例如:

    <package name="books" extends="struts-default" namespace="/">
        <action name="/{type}/content/{title}" class="example.BookAction">
      <result>/books/content.jsp</result>
        </action>
    </package>
    

    【讨论】:

    • 目前我正在使用通配符映射,但它显示了诸如插入更新等的动作名称......你有任何 Tuckey URL 重写的演示吗?。
    • 我已经看到你更新的答案,但没有它的解释很难使用我们正在使用的标签和标签的参数 ^/(.*)$
    • 我已经给你答案了,但是你的问题太笼统了。您应该按照链接获取您想要的解释或编辑您的问题并通过提出具体问题来突出显示详细信息。
    • Roman C 你能回答我最近关于在 XML 中传递 struts 参数的问题吗
    • 首先我们需要对这个问题做点什么,我也不明白你对标签参数的评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    相关资源
    最近更新 更多