0

M 是 grails 的新手,现在我的问题是,

我想当我浏览我的应用程序而不是获取 URL 作为http://localhost:8080/merchant/我只想显示 ://localhost。

同样明智的是,当我浏览我的应用程序的其他视图时,我得到的 URL 像http://localhost:8080/merchant/register/list现在我也不希望它在那里显示应用程序控制器和操作名称,而是我希望它显示一个单词可能是列表或我想要的其他东西。

我经历了 URLMapping 的概念,但我知道到底该做什么..我知道我应该学习理解,然后询问是否有任何疑问,但我没有太多时间..所以请任何人告诉我到底需要做什么。

提前谢谢,

4

1 回答 1

3

实际上,如果您在 url 中没有端口,则默认使用端口 80。apache http 服务器正常运行在此端口上。

对于运行在 tomcat 服务器上的 grails 应用程序,有两种不同的方法可以实现此目的。

  • 更改 tomcat 服务器的端口(启动 grails 时使用 Dserver.port 参数)
grails -Dserver.port=80 run-app
  • 或者使用 apache http 服务器作为您的 tomcat 服务器的代理。

http://www.unidata.ucar.edu/projects/THREDDS/tech/tds4.1/reference/TomcatBehindProxyServer.html


编辑:

对于 url 的第二件事。如果我的问题正确,您希望列表视图作为您的默认视图。为此,请使用以下 URL 映射(虽然没有测试):

static mappings = {
    "/$controller" {
       controller = "controller"
       action = "list"
    }
}

编辑2:

您只想查看操作而不是控制器名称。

  • 这仅适用于一个控制器。否则 grails 将如何知道要使用哪个控制器的哪个操作。

  • 您可以定义您的操作,这些操作应该可以在您的家庭控制器的 url 中没有控制器名称的情况下访问。

    1. 做一个家庭控制器

    2. 设置以下映射

"/$action"
 {
    controller = "yourController"
    action = "action"
 }

请注意这种方式对其他控制器前的所有索引操作。/controller 将无法正常工作,因为它希望您在家庭控制器中使用名称控制器进行操作。


编辑 3:您还可以为您希望在 url 中没有控制器名称的情况下访问的每个操作定义一个 url 映射。这样,动作就不必在您的家庭控制器中了。

前任

"/myAction"
 {
    controller = "yourController"
    action = "myAction"
 }
于 2011-05-12T07:42:48.153 回答