struts2之在jsp中使用静态方法

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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值