liferay を使用してカスタム ポートレット (mvc ポートレット) を開発しています。問題は、HTML の jsp ページに 1 つのフォームがあり、フォームのいくつかのフィールドを検証し、送信ボタンで別のページにリダイレクトすることです。私が行った検証は機能していますが、送信ボタンをクリックすると別のページにリダイレクトされ、そのページではliferayからのデフォルトエラーが表示されます。私が望むのは、検証がfalseであるフィールドの近くにエラーメッセージが表示されてリクエストが完了しなかった場合、同じページを表示することです。
この問題を解決するにはどうすればよいですか?
これは、アクションクラスにメソッドを追加しながら検証をチェックするための私のコードです
public void addRestaurant(ActionRequest リクエスト、ActionResponse レスポンス) {
log.info("Inside addRegistration");
List<String> errors = new ArrayList<String>();
restaurant rest = RestaurantActionUtil
.getRestaurantFromRequest(request);
boolean restValid = RestaurantValidator
.validateRestaurant(rest, errors);
if (restValid) {
try {
log.info(rest);
restaurant test = restaurantLocalServiceUtil
.addrestaurant(rest);
if (test == null) {
log.error("Restaurant was Found Null");
response.setRenderParameter("jspPage", errorJSP);
return;
}
} catch (SystemException e) {
log.error(e);
/*
* If there is an error then divert the control to the error
* page.
*/
response.setRenderParameter("jspPage", errorJSP);
return;
}
SessionMessages.add(request, "restaurant-added");
return;
} else {
for (String error : errors) {
SessionErrors.add(request, error);
}
SessionErrors.add(request, "error-while-adding");
request.setAttribute("rest", rest);
return;
}
}
これは私のバリデータークラスです
public class RestaurantValidator {
public static boolean validateRestaurant(restaurant rest, List errors) {
boolean valid=true ;
if (Validator.isNull(rest.getName())) {
errors.add("Name-required");
valid = false;
}
if (Validator.isNull(rest.getLicensekey())) {
errors.add("license-key-required");
valid = false;
}
以下は私のview.jspコードです
レストラン名* " />
<span class="help-block">help block</span>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<label>License Key<span class="f_req">*</span></label>
<liferay-ui:error key="license-key-required" message="license-key-required" />
<input type="text" name="licensekey" class="span8" value="<%=restaurantOBJ.getLicensekey() %>"/>
</div>
</div>
同じページではなく、次の方法でリダイレクトされたページにエラーメッセージが表示されます「Name_required」のエラーで名前のテキストボックスの近くにエラーが必要
エラーメッセージは、同じページではなく、リダイレクトされたページに次のように表示されます。名前テキストボックスの近くに「Name_required」というエラーが表示されます。
私が欲しいのは、名前が空白の場合、フォームを送信せず、view.jsp
ページの名前のテキストボックスの近くでエラーが発生することです。