Grails 管制员在那里,但显示“不”;错误代码404未找到页面;圣杯
新普惠制:Grails 管制员在那里,但显示“不”;错误代码404未找到页面;圣杯,grails,Grails,新普惠制: <html> <head> </head> <body> <g:form name="myForm" controller="New" action="index" params="username:username"> <div> <fieldset class="form"> <label for="name">
<html>
<head>
</head>
<body>
<g:form name="myForm" controller="New" action="index" params="username:username">
<div>
<fieldset class="form">
<label for="name">Name:</label>
<div>
<g:textField name="username" value="${params.userName}"/>
</div>
</fieldset>
</div>
<g:submitButton name="Submit" value="Submit" />
</g:form>
</body>
<html>
login.gsp是一个简单的页面,有一个简单的欢迎说明
如果有人提出了解决方案,请回复
提前谢谢。
通过prasanth向控制器添加一个名为login的处理程序
def login = {}
如果视图文件是
new.gsp
,那么您的操作也需要是new
,或者有一个URL映射(在UrlMappings.groovy
)来执行以下操作:
"/new" {
controller = 'new'
action = 'new'
}
或者你可以设置
static defaultAction = 'new'
…在您的新控制器中
然后Grails会在您的控制器上找到适当的操作。发布的代码中有一些问题会给您带来问题:
$params
而不是params
访问参数。只有在GString
中时,$字符才是必需的。e、 g.def foo=“您的用户名是${params.username}”
new.gsp
,但您的操作名为index
。默认情况下,Grails将在为控制器命名的目录中查找与操作名称匹配的视图。换句话说,由于您没有明确告诉它呈现/new.gsp
grails将查找/new/index.gsp
。您可以将视图重命名为/new/index.gsp
,或者让grails在index操作中呈现视图new
render(视图:'login.gsp')
。调用render标记时不需要gsp扩展。您打算使用grails视图名称,而不是文件名<代码>渲染(视图:“登录”)def actionName(){}
对应于def actionName()={}
。原因在grails文档中new.gsp
重命名为/new/index.gsp
。将login.gsp
重命名为/new/loggedIn.gsp
控制器:
class NewController {
def index() {
if (params.userName) {
forward action: 'loggedIn'
return // render and forward don't end flow control
}
}
def loggedIn() {} // no logic, automatically renders '/new/loggedIn.gsp'
}
如果您的操作称为索引,则可以访问上的页面
localhost:8080/webapp/NewController
将控制器名称更改为“新”,而不是中的“新” 它会起作用的
或者,您可以在控制器中修改“保存”操作,这样当您单击“保存”按钮时,新页面将被呈现。您是否有
登录
控制器方法?呈现(查看:“/login”)当您收到404时,您试图访问的url是什么?@andymccullough否,,login.gsp是一个简单的页面,包含一些欢迎说明,感谢您的支持response@baxxabit我也试过了,但仍然不起作用。。感谢您的回复。我的控制器是新的,要调用的操作是索引。谢谢你的回答。我纠正了,就像你说的那样。仍然有相同的错误页未找到404。谢谢你的努力和回复,我试过了,但还是有同样的问题,谢谢你的回复,,
localhost:8080/webapp/NewController