1 struts2允许在jsp中使用静态方法。首先是要struts.xml中进行配置,让其满足jsp能访问静态方法。
如:<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
2 在jsp中如果能访问静态方法。这是可以通过struts2的ognl表达式来访问静态方法。格式为<s:property value="@类的全路径@类的静态方法"/>
如:<legend><s:property value="@com.util.Lan@getString('chaxun')"/></legend>
格式为<s:property value="@类的全路径@类的静态方法"/>
3 在某个标签的value属性中也能使用<s:property value="@类的全路径@类的静态方法"/>来得到值
如:<input type="button" name="btn_query" id="btn_query" value="<s:property value='@com.util.Lan@getString(\"chaxun\")'/>" οnclick="btn_query_onclick()"/>
input标签的value的值为struts2的property标签。使用ognl表达式。使用静态方法。
4 还有种方式。如果在某个属性中无法使用<s:property value="@类的全路径@类的静态方法"/>来得到后台的静态方法值时,可以通过%{@类的全路径@类的静态方法}来得到值
如:<s:select name="bean.sexSer" list="#request.bean.list" listKey="sexKey" listValue="sexValue" headerKey="-1" headerValue="===%{@com.util.Lan@getString('qingxuanze')}===" value="#request.bean.sexSer" theme="simple"/>
该select标签的headerValue中的值就是通过%{@类的全路径@类的静态方法}来得到值的
!!!注意:%的用途是当某个标签的某个属性的属性值为字符串类型时,用%{}的方式,则告诉系统大括号内部的为ognl表达式
5 在使用struts2标签时,标签会自动换行。这是可以设置标签的theme属性为simple,则不会自动换行了。
如:<s:select name="bean.sexSer" list="#request.bean.list" listKey="sexKey" listValue="sexValue" headerKey="-1" headerValue="===%{@com.util.Lan@getString('qingxuanze')}===" value="#request.bean.sexSer" theme="simple"/>
添加theme的属性,属性值为simple。
还有一种是设置struts.xml中添加<constant name="struts.ui.theme" value="simple" />这便可去除标签并解决自动换行的问题。
6 在java对map进行定义时,可以进行初始化。
如:private static Map<String,String> map=new HashMap<String,String>(){//定义并初始化
private static final long serialVersionUID = 1L;
{
put("chaxun_zn","查询");
put("chaxun","query");
put("sex_zn","性别");
put("sex","sex");
put("createDate_zn","创建日期");
put("createDate","createDate");
put("qingxuanze_zn","请选择");
put("qingxuanze","select");
}
};
完整的例子:
//struts.xml
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
//Lan类
package com.util;
import java.util.HashMap;
import java.util.Map;
public class Lan {
private static boolean zn=false;
private static Map<String,String> map=new HashMap<String,String>(){
private static final long serialVersionUID = 1L;
{
put("chaxun_zn","查询");
put("chaxun","query");
put("sex_zn","性别");
put("sex","sex");
put("createDate_zn","创建日期");
put("createDate","createDate");
put("qingxuanze_zn","请选择");
put("qingxuanze","select");
}
};
public Lan() {
super();
// TODO Auto-generated constructor stub
}
public static String getString(String key){
if(zn){//中文
key=key+"_zn";
}else{
}
if(map.containsKey(key)){
return map.get(key).toString();
}else{
return "";
}
}
}
//前台的jsp
<fieldset>
<legend><s:property value="@com.util.Lan@getString('chaxun')"/></legend>
<form name="form1" action="exampleQuery!list" method="post">
<table>
<tr>
<td><s:property value="@com.util.Lan@getString('sex')"/></td>
<td>
<s:select name="bean.sexSer" list="#request.bean.list" listKey="sexKey" listValue="sexValue" headerKey="-1" headerValue="===%{@com.util.Lan@getString('qingxuanze')}===" value="#request.bean.sexSer" theme="simple"/>
</td>
<td><s:property value="@com.util.Lan@getString('createDate')"/></td>
<td>
<input type="text" id="bean.creatDateSer" name="bean.createDateSer" class="Wdate" value="${bean.createDateSer}" οnfοcus="WdatePicker({isShowWeek:true,dateFmt:'yyyy-MM-dd'})"/>
</td>
<td>
<input type="button" name="btn_query" id="btn_query" value="<s:property value='@com.util.Lan@getString(\"chaxun\")'/>" οnclick="btn_query_onclick()"/>
</td>
</tr>
</table>
</form>
</fieldset>
如:<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
2 在jsp中如果能访问静态方法。这是可以通过struts2的ognl表达式来访问静态方法。格式为<s:property value="@类的全路径@类的静态方法"/>
如:<legend><s:property value="@com.util.Lan@getString('chaxun')"/></legend>
格式为<s:property value="@类的全路径@类的静态方法"/>
3 在某个标签的value属性中也能使用<s:property value="@类的全路径@类的静态方法"/>来得到值
如:<input type="button" name="btn_query" id="btn_query" value="<s:property value='@com.util.Lan@getString(\"chaxun\")'/>" οnclick="btn_query_onclick()"/>
input标签的value的值为struts2的property标签。使用ognl表达式。使用静态方法。
4 还有种方式。如果在某个属性中无法使用<s:property value="@类的全路径@类的静态方法"/>来得到后台的静态方法值时,可以通过%{@类的全路径@类的静态方法}来得到值
如:<s:select name="bean.sexSer" list="#request.bean.list" listKey="sexKey" listValue="sexValue" headerKey="-1" headerValue="===%{@com.util.Lan@getString('qingxuanze')}===" value="#request.bean.sexSer" theme="simple"/>
该select标签的headerValue中的值就是通过%{@类的全路径@类的静态方法}来得到值的
!!!注意:%的用途是当某个标签的某个属性的属性值为字符串类型时,用%{}的方式,则告诉系统大括号内部的为ognl表达式
5 在使用struts2标签时,标签会自动换行。这是可以设置标签的theme属性为simple,则不会自动换行了。
如:<s:select name="bean.sexSer" list="#request.bean.list" listKey="sexKey" listValue="sexValue" headerKey="-1" headerValue="===%{@com.util.Lan@getString('qingxuanze')}===" value="#request.bean.sexSer" theme="simple"/>
添加theme的属性,属性值为simple。
还有一种是设置struts.xml中添加<constant name="struts.ui.theme" value="simple" />这便可去除标签并解决自动换行的问题。
6 在java对map进行定义时,可以进行初始化。
如:private static Map<String,String> map=new HashMap<String,String>(){//定义并初始化
private static final long serialVersionUID = 1L;
{
put("chaxun_zn","查询");
put("chaxun","query");
put("sex_zn","性别");
put("sex","sex");
put("createDate_zn","创建日期");
put("createDate","createDate");
put("qingxuanze_zn","请选择");
put("qingxuanze","select");
}
};
完整的例子:
//struts.xml
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
//Lan类
package com.util;
import java.util.HashMap;
import java.util.Map;
public class Lan {
private static boolean zn=false;
private static Map<String,String> map=new HashMap<String,String>(){
private static final long serialVersionUID = 1L;
{
put("chaxun_zn","查询");
put("chaxun","query");
put("sex_zn","性别");
put("sex","sex");
put("createDate_zn","创建日期");
put("createDate","createDate");
put("qingxuanze_zn","请选择");
put("qingxuanze","select");
}
};
public Lan() {
super();
// TODO Auto-generated constructor stub
}
public static String getString(String key){
if(zn){//中文
key=key+"_zn";
}else{
}
if(map.containsKey(key)){
return map.get(key).toString();
}else{
return "";
}
}
}
//前台的jsp
<fieldset>
<legend><s:property value="@com.util.Lan@getString('chaxun')"/></legend>
<form name="form1" action="exampleQuery!list" method="post">
<table>
<tr>
<td><s:property value="@com.util.Lan@getString('sex')"/></td>
<td>
<s:select name="bean.sexSer" list="#request.bean.list" listKey="sexKey" listValue="sexValue" headerKey="-1" headerValue="===%{@com.util.Lan@getString('qingxuanze')}===" value="#request.bean.sexSer" theme="simple"/>
</td>
<td><s:property value="@com.util.Lan@getString('createDate')"/></td>
<td>
<input type="text" id="bean.creatDateSer" name="bean.createDateSer" class="Wdate" value="${bean.createDateSer}" οnfοcus="WdatePicker({isShowWeek:true,dateFmt:'yyyy-MM-dd'})"/>
</td>
<td>
<input type="button" name="btn_query" id="btn_query" value="<s:property value='@com.util.Lan@getString(\"chaxun\")'/>" οnclick="btn_query_onclick()"/>
</td>
</tr>
</table>
</form>
</fieldset>