在包下建立名为pageckage.properties的文件.我这里的包是com.内容如下:
这里我们需要改一下我们的LoginAction-validation.xml:
requiredstring = $\{getText(fieldName)} is required.
password = Password
username = User Name
password = Password
username = User Name
这里我们需要改一下我们的LoginAction-validation.xml:
<
message
>
Username is required
</
message
>
< message key ="requiredstring" />
< message > Password is required </ message >
< message key ="requiredstring" />
< message key ="requiredstring" />
< message > Password is required </ message >
< message key ="requiredstring" />
红色-号标志的为原先内容,+号内容为现在修改后的内容.
login.jsp:
<%
@ page language
=
"
java
"
pageEncoding
=
"
GB18030
"
%>
<% @taglib prefix = " s " uri = " /struts-tags " %>
< html >
< head >
< title > My JSP ' login ' starting page </ title >
</ head >
< body >
< s:form action = " login " method = " post " >
< s:textfield name = " username " label = " %{getText('username')} " />
< br />
< s:textfield name = " password " label = " %{getText('password')} " />
< br />
< s:submit />
</ s:form >
</ body >
</ html >
<% @taglib prefix = " s " uri = " /struts-tags " %>
< html >
< head >
< title > My JSP ' login ' starting page </ title >
</ head >
< body >
< s:form action = " login " method = " post " >
< s:textfield name = " username " label = " %{getText('username')} " />
< br />
< s:textfield name = " password " label = " %{getText('password')} " />
< br />
< s:submit />
</ s:form >
</ body >
</ html >
struts.xml文件:
<
struts
>
< package name ="com" extends ="struts-default" >
< action name ="*" class ="com.LoginAction" >
< result name ="input" > /login.jsp </ result >
< result > /success.jsp </ result >
</ action >
</ package >
</ struts >
LoginAction文件:
< package name ="com" extends ="struts-default" >
< action name ="*" class ="com.LoginAction" >
< result name ="input" > /login.jsp </ result >
< result > /success.jsp </ result >
</ action >
</ package >
</ struts >
package
com;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport
{
private static final long serialVersionUID = 4771028725069625041L;
private String username;
private String password;
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
@Override
public String execute()
{
System.out.println(getText("username") + ":" + username);
System.out.println(getText("password") + ":" + password);
return SUCCESS;
}
}
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport
{
private static final long serialVersionUID = 4771028725069625041L;
private String username;
private String password;
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
@Override
public String execute()
{
System.out.println(getText("username") + ":" + username);
System.out.println(getText("password") + ":" + password);
return SUCCESS;
}
}
properties文件的内容按以下顺序检索:
Resource bundles are searched in the following order:
- ActionClass.properties
- BaseClass.properties (all the way to Object.properties)
- Interface.properties (every interface and sub-interface)
- ModelDriven's model (if implements ModelDriven), for the model object repeat from 1
- package.properties (of the directory where class is located and every parent directory all the way to the root directory)
- search up the i18n message key hierarchy itself
- global resource properties
源码请在我的网盘下