gpt4 book ai didi

java - 在 Struts2 中使用 RegexFieldValidator 时,消息参数不会替换为存储在属性文件中的消息中的实际占位符

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:25:38 29 4
gpt4 key购买 nike

我在方法上使用 @RegexFieldValidator,如下所示。

@Validations(
regexFields={
@RegexFieldValidator(caseSensitive=false, fieldName="colourHex", regex="[0-9, a-f, A-F]+", key="colour.hex.pattern", messageParams={"A", "F"})})
@Action(value = "AddColour",
results = {@Result(name=ActionSupport.SUCCESS, type="redirectAction", location="Colour.jsp", params={"namespace", "/admin_side", "actionName", "Colour", "currentPage", "${currentPage}", "editId", "${editId}"}),
@Result(name = ActionSupport.INPUT, location = "Colour.jsp")},
interceptorRefs={@InterceptorRef(value="defaultStack", params={"params.acceptParamNames", "editId, colourId, colourName, colourHex, currentPage, rowCount, totalPages", "validation.validateAnnotatedMethodOnly", "true"})})
public String insert() {
return ActionSupport.SUCCESS;
}

给定键所指的消息保存在如下属性文件中。

colour.hex.pattern=Only digits and letters from {0} to {1} either capital or small are significant.

占位符不会被给定的参数替换。它们是 null 因此,形成的消息是,

Only digits and letters from null to null either capital or small are significant.

其实应该是这样的

Only digits and letters from A to F either capital or small are significant.

为什么不将参数替换为占位符?

根据给定的模式正确执行验证。

最佳答案

messageParams 是根据值堆栈计算的,因此您的 AF 被计算并返回空值。您需要将它们作为字符串传递,例如“\”A\“”

@Validations(
regexFields={
@RegexFieldValidator(caseSensitive=false, fieldName="colourHex",
regex="[0-9, a-f, A-F]+", key="colour.hex.pattern",
messageParams={"\"A\"", "\"F\""})})

关于java - 在 Struts2 中使用 RegexFieldValidator 时,消息参数不会替换为存储在属性文件中的消息中的实际占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21894429/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com