forms - 发送表单不是通过action类而是通过stuts2的结果输入
问题描述
我在我的应用程序中使用 struts2。
在我的 JSP 上,我有一个将数据发送到 'action = "updateBl"' 属性的表单:
<form action="updateBl" method="post" id="form_bl">
<div class="alert alert-danger" role="alert" id="error_message">Veuillez saisir des nombres !</div>
<input type="text" class="hidden" id="idCommande_poste_ligne" name="commande.idCommande" value="1">
<input type="text" class="hidden" id="idPostBl" name="idPost" value="">
<input type="text" class="hidden" id="idBl" name="idBl" value="">
<div class="col-md-4">
<div class="form-group">
<label for="num_bl">Numero de BL</label>
<input type="text" class="form-control" id="num_bl" name="bonLivraison.numeroBonLivraison">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="montant_bl">Montant du BL</label>
<input type="text" class="form-control" id="montant_bl" name="bonLivraison.montant">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="date_livraison_bl">Date de livraison</label>
<input type="text" class="form-control" id="date_livraison_bl" name="bonLivraison.dateBonLivraison">
</div>
</div>
<div class="clear"></div>
<button id="btn_update_bl" type="submit" class="btn btn-success btn_bl">Valider</button>
<button type="button" class="btn btn-danger" data-dismiss="modal">Annuler</button>
</form>
此信息用于更新数据库中的数据,但此表单也用于在数据库中插入数据(使用其他 struts 代码)。它适用于插入但不适用于更新。这个表单是一样的,但是一些参数是用 jQuery 改变的(表单动作,按钮 id,一些元素的 id,...)。
这是插入表单的代码:
<form action="addBl" method="post" id="form_bl">
<div class="alert alert-danger" role="alert" id="error_message">Veuillez saisir des nombres !</div>
<input type="text" class="hidden" id="idCommande_poste_ligne" name="commande.idCommande" value="1">
<input type="text" class="hidden" id="idPostBl" name="idPost" value="">
<input type="text" class="hidden" id="idBl" name="idBl" value="">
<div class="col-md-4">
<div class="form-group">
<label for="num_bl">Numero de BL</label>
<input type="text" class="form-control" id="num_bl" name="bonLivraison.numeroBonLivraison">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="montant_bl">Montant du BL</label>
<input type="text" class="form-control" id="montant_bl" name="bonLivraison.montant">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="date_livraison_bl">Date de livraison</label>
<input type="text" class="form-control" id="date_livraison_bl" name="bonLivraison.dateBonLivraison">
</div>
</div>
<div class="clear"></div>
<button id="btn_update_bl" type="submit" class="btn btn-success btn_bl">Valider</button>
<button type="button" class="btn btn-danger" data-dismiss="modal">Annuler</button>
</form>
这是我的 strusts.xml 文件中的相关部分:
<action name = "updateBl" class = "sii.dsi.action.DetailsCommandeAction" method = "UpdateBl">
<result name="success" type="redirectAction">
<param name="actionName">details</param>
<param name="commande.idCommande">${commande.idCommande}</param>
</result>
<result name="input" type="redirectAction" >accueil</result>
</action>
提交表单时,它永远不会进入我的操作类的方法:“UpdateBl”。我总是被“结果名称=”输入“”重定向到我的“家”捐赠页面。
我找不到问题。
我需要帮助。
先感谢您。
PS:抱歉英语不好,我是法国人,我正在使用https://translate.google.fr
解决方案
您的代码或拦截器(可能是转换拦截器)中的某些内容正在向您的操作添加验证错误(actionErrors 或 fieldErrors 不为空),这会触发框架重定向回“输入”结果。
我建议在您的操作中覆盖 validate() 方法并设置断点。查看 actionErrors 和 fieldErrors 集合以了解它们包含的内容。这应该为导致验证错误的原因提供线索。
推荐阅读
- node.js - Twilio 节点 - 浏览器调用 StatusCallback 事件
- java - 如何从eclipse的IResource接口获取文件内容
- r - lapply 和 BioMart 的另一个问题
- javascript - 在 c3 中有条件地添加或省略 JavaScript 属性
- r - 我的 R 应用程序在身体上产生额外的额外输出
- kubernetes - (MISSING)TILLER:拨打 tcp 127.0.0.1:8080:连接:连接被拒绝
- javascript - JQuery Validate - 动态表单字段消息
- reactjs - React 中的高阶组件
- css - 为什么过渡属性不适用于此线性渐变?
- c++ - 将迭代器作为参数传递时奇怪的递增