gpt4 book ai didi

java - 读取Spring Validator类中属性文件的内容

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:49 25 4
gpt4 key购买 nike

我正在使用 Spring 3.0。我可以从本地驱动器读取属性文件,例如:C:\prop\mylogin.properties(不在 webapps/应用程序服务器下)

mylogin.properties

login.heading=Login
login.username=Username
login.password_blank=Password cannot be blank

我想在我的 Validator 类(java bean 类)中使用上面的内容。请注意:我使用 MultiAction Controller 而不是 SpringFormController

 public class MyUserValidator implements Validator 
{

@Override
public void validate(Object command, Errors errors) {
String msg=null;
//some conditions checked
String msg=login.password_blank;-------->get from property file ??
errors.rejectValue("User",msg,"defaultvalue");

}

您好,我们正在使用资源包,不确定如何在 validator 中使用它?

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource" lazy-init="true"> 
<property name="basenames">
<list>

<value>${deployment.properties.path}/xyzsite/mylogin</value>

</list>
</property>
<property name="cacheSeconds" value="${deployment.properties.cache_in_seconds}"/>
</bean>

如果使用资源包,我会在您提到的答案中进行哪些更改?

例如,如果我想设置 PageSizeint 页大小=5; ---> 从属性文件中获取此内容

mylogin.properties

login.heading=Login
login.username=Username
login.password_blank=Password cannot be blank
login.page_row_size=5

最佳答案

错误消息通常最好作为 Java ResourceBundle 和 JSTL 的标准组合来处理,但这不适用于从文件系统上的任意位置加载属性。

所以你必须更多地手动做一些事情。最简单的事情是注入(inject)属性文件的位置,然后从中提取属性:

public class MyUserValidator implements Validator {

private Resource propertiesLocation;

@Required
public void setPropertiesLocation(Resource propertiesLocation) {
this.propertiesLocation = propertiesLocation;
}

@Override
public void validate(Object command, Errors errors) {
try {
Properties props = PropertiesLoaderUtils.loadProperties(propertiesLocation);

String key = "login.password_blank";
String errorMessage = props.getProperty(key);
errors.rejectValue("User", key, errorMessage);
} catch (IOException e) {
// handle me
}
}
}

并在配置中:

<bean id="userValidator" class="com.x.MyUserValidator">
<property name="propertiesLocation" value="file:/prop/mylogin.properties"/>
</bean>

请注意以下行:

errors.rejectValue("User", key, errorMessage);

由于您没有使用ResourceBundle,因此您需要传入“默认错误消息”作为第三个参数。

关于java - 读取Spring Validator类中属性文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3617126/

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