最近在做项目,看见其他同事里有段代码:<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%@include file="/common/common.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<link href="style/oa.css" rel="stylesheet" type="text/css">
<script language="javascript" src="script/public.js"></script>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/aclManager.js"></script>
<script type="text/javascript">
function addOrUpdatePermission(field){
aclManager.addOrUpdatePermission(
"<s:property value="principalType"/>",
<s:property value="principalId"/>,
field.moduleId,
field.permission,
field.checked
);
}</script>
<s:if test="principalType == 'Role'">
<s:set var="title" value="'请给角色【'+#role.name+'】授权'"></s:set>
</s:if>
<s:else>
<s:set var="title" value="'请给用户【'+#user.name+'】授权'"></s:set>
</s:else>
这是一个授权JSP页面的上半部分代码,大家请看最下面:
<s:if test="principalType == 'Role'">
<s:set var="title" value="'请给角色【'+#role.name+'】授权'"></s:set>
</s:if>
<s:else>
<s:set var="title" value="'请给用户【'+#user.name+'】授权'"></s:set>
</s:else>
这部分表示的是判断是给角色还是用户授权。我的问题很简单,我就搞不清楚为什么value的值要那样的格式写?也就是中文加java代码,为什么要用【'+  +'】把代码包起来,请问这是什么表达式?我的问题很简单,就是这样的格式是什么规则?

解决方案 »

  1.   

    打开/common/common.jsp文件,看其导入的是哪种标签库(反正不像JSTL)。所以先去了解那种标签库技术后自然就知道了。
      

  2.   

    那是strtus组件引用变量的方法,role.name是要授权的角色名字,是变量
      

  3.   

    JSP页面里面的【'+  +'】是因为在两个加号中间#role.name是一个变量,值是不固定的,所以需要使用++引用
      

  4.   

    是使用的点运算符".";
    role是一个JavaBean对象。
    role.name时看作是做的role.getName()操作。