【问题标题】:Playframework dynamic form handlingPlayframework 动态表单处理
【发布时间】:2015-06-06 15:18:58
【问题描述】:

大家好,我是游戏框架的新手,遇到了一个小问题 关于表单处理。 这是我的看法

<form action="@routes.Account.changeemail()" method="Post">
 email:<input name ="email"> 
 <button type="submit" name="action" value="Change_email">save</button>

  <br />
 </form>
 <form action="@routes.Account.changepassword()" method="Post">
  
  password:<input name ="password"> 
  <button type="submit" name="action" value="change_password">save</button>
 
 </form>
 <br />

这是我的控制器

public static Result changeemail(){

final DynamicForm form = Form.form().bindFromRequest();
Logger.info(form.get("email"));
return TODO;}

public static Result changepassword(){
final DynamicForm forms = Form.form().bindFromRequest();
Logger.info(forms.get("password"));
return TODO;}

路线如下:

GET    /account                   controllers.Account.accountview()
POST   /account                   controllers.Account.changeemail()
POST   /account                   controllers.Account.changepassword()

问题是,如果我按下 Change_email 按钮,它会做正确的事情,但如果我按下密码按钮,它正在执行 changeemail 操作,即使它应该处理 changepasswort 操作。我用 Firefox 网络分析检查了它,它似乎正在发送正确的操作。

在此感谢您的帮助

问候亚历克斯

【问题讨论】:

  • 您也可以发布路线文件吗?您报告的结果似乎有点奇怪,可能是其中隐藏了什么?
  • 关于这个问题的路由: GET /account controllers.Account.accountview() POST /account controllers.Account.changeemail() POST /account controllers.Account.changepassword() 也加入了原帖

标签: java forms playframework-2.3


【解决方案1】:

问题出在你的路线上,顺序很重要。您的路由器始终采用第一个执行changeemail() 操作的POST /account。您不能将POST /account 用于两个不同的操作。应该是:

GET    /account                          controllers.Account.accountview()
POST   /account/change-email             controllers.Account.changeemail()
POST   /account/change-password          controllers.Account.changepassword()

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    相关资源
    最近更新 更多