RS语句使用说明

RS语句用于读取指定栏目或SQL数据。RS语句可以嵌套使用RS、ATTACH、MAP和JAVA语句。

注意:在应用SQL直接读取数据库时,BLOB、JAVA_OBJECT、LONGVARBINARY、VARBINARY、STRUCT、REF、DATALINK、LONGVARCHAR、OTHER、DISTINCT数据不被支持,将被跳过且返回NULL。

RS语法

<rs id=(id:STRING) sql=(sql:STRING) topic=(topic:STRING) where=(where:string) orderby=(orderby:string) from=(from:int) rows=(rows:int) page=(page:int) style=(style:String)>
    --在此写入你的正文内容
</rs>

一旦sql或topic出现,其必须在id之后,在from、rows、page、style、where、orderby之前。



分页样式定制参数说明

样式定义方法

    在模板需要定制的位置前(一般是RS语句前),嵌入JAVA语句。
  注意:
    1.建议是一次定义整组变量,而不是一个。
    2.%1$s用于表示参数。%1$表示第一个,%2$表示第二个;s表示是字符串,d表示是数字。所以,%1$s表示第一个参数格式化为字符串显示,%1$d表示第一个参数格式化为数字显示。具体可以参照String.format()函数的说明。
    3.如果仅仅是调整CSS样式,请参见/css/pagebreak.css样例进行调整。

例如,以下定义导航栏不清除样式,英文导航,并且显示当前链接,但是没有合计信息和下拉选择框导航。
<%
    PAGEBREAK_HEADER = "<div class='pagebreak_modern'>";
    PAGEBREAK_PREVPAGE = "<span class='prevpage'><a href='%1$s'>Previous</a></span>";
    PAGEBREAK_NEXTPAGE = "<span class='nextpage'><a href='%1$s'>Next</a></span>";
    PAGEBREAK_SKIP = "<span class='omit'>...</span>";
    PAGEBREAK_PAGE = "<span class='page'><a href='%1$s'>%2$s</a></span>";
    PAGEBREAK_CURRENTPAGE = "<span class='currentpage'><a href='%1$s'>%2$s</a></span>";
    PAGEBREAK_TOTAL = null;
    PAGEBREAK_SELECTBOX = null;
    PAGEBREAK_FOOTER = "</div>";
%>

modern样式的缺省定义



onebyone样式的缺省定义



RS标签使用说明

1.标签以<$开头,$>结尾定义。
2.标签以RS的ID号作为前缀进行引用,例如<$rs1.productname$>。注意:ID大小写应与定义中的形同,后面变量不区分大小写。
3.rowno标签表明当前行号,为整数。例如<$rs1.rowno$>。
4.RS语句中采用了topic参数的,可以加上RS的ID号作为前缀引用正文标签。对于自定义数据源,正文标签仅限于<$art_id$>、<$art_title$>、<$art_url$>、<$art_createdate$>和<$art_publishdate$>
5.RS语句中可以嵌套ATTACH语句。对于自定义数据源,除非定制(例如产品管理),一般附件标签不起作用(也即没有任何数据)。
6.RS语句中采用了sql参数的,使用RS的ID号作为前缀加上字段名进行引用,字段名不区分大小写。
7.标签后面可以加括号紧跟格式化参数或字数限制条件,例如<$rs1.productname(50)$>。对于不同类型数据,其主要含义有:

      1)字符串类型
<$rs1.productname(50)$>表示取productname的前50个字符,中文字符算1个字符;
<$rs1.productname(50,"...")$>表示取productname的前50个字符,超出的最后追加...


      2)数字类型,参见下表说明;

符号 位置 含义
0 数字 阿拉伯数字
# 数字字 阿拉伯数字,如果不存在则显示为 0
. 数字 小数分隔符或货币小数分隔符
- 数字 减号
, 数字 分组分隔符
E 数字 分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。
; 子模式边界 分隔正数和负数子模式
% 前缀或后缀 乘以 100 并显示为百分数
\u2030 前缀或后缀 乘以 1000 并显示为千分数
¤ (\u00A4) 前缀或后缀 货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。
' 前缀或后缀 用于在前缀或或后缀中为特殊字符加引号,例如 "'#'#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号:"# o''clock"

      3)日期类型:格式化字符串,例如<$rs.salesdate("yyyyMMdd")$>。默认格式为"yyyy-MM-dd"。参见下表说明:
字母
日期或时间元素
表示
示例
G
Era 标志符
Text
AD
y
Year
1996; 96
M
年中的月份
Month
July; Jul; 07
w
年中的周数
Number
27
W
月份中的周数
Number
2
D
年中的天数
Number
189
d
月份中的天数
Number
10
F
月份中的星期
Number
2
E
星期中的天数
Text
Tuesday; Tue
a
Am/pm 标记
Text
PM
H
一天中的小时数(0-23)
Number
0
k
一天中的小时数(1-24)
Number
24
K
am/pm 中的小时数(0-11)
Number
0
h
am/pm 中的小时数(1-12)
Number
12
m
小时中的分钟数
Number
30
s
分钟中的秒数
Number
55
S
毫秒数
Number
978
z
时区
General time zone
Pacific Standard Time; PST; GMT-08:00
Z
时区
RFC 822 time zone
-0800

      4)CLOB类型
      1."0"或"text"表示格式化后的纯文本(将忽略所有HTML标签,空格、HTML空格(但全角空格保留);
          例如 <$rs1.content("text")$> 将返回格式化后的content数据。
<$rs1.content("text",50)$> 将返回格式化后的content数据中的前50个字符。等同于<$rs1.content(50)$>
<$rs1.content("text",50,"...")$> 将返回格式化后的content数据中的前50个字符,超出50个的在末尾追加...

      2.数字表明取的个数,将自动格式化成纯文本然后返回。
          例如<$rs1.content(500)$> 将返回格式化后的前500个字符。1个中文算1个字符。
<$rs1.content(500)$> 将返回格式化后的content数据中的前500个字符。等同于<$rs1.content(500,"")$>
<$rs1.content(500,"...")$> 将返回格式化后的content数据中的前500个字符,超出500个的在末尾追加...



样例代码

以下代码演示了读取当前栏目下所有文章。
<rs id="rs1">
     <$rs1.art_title$>
</rs>

以下代码作用同上,也是读取当前栏目下所有文章。
<rs id="rs1" topic=<$top_code$>>
     <$rs1.art_title$>
</rs>

以下代码演示了读取指定栏目中的重要度为非常重要的文章,按发布时间升序排列。
<rs id="rs1" topic=<$top_code$> where="a.important=2" orderby="a.publishdate">
     <$rs1.art_title$>
</rs>

以下代码演示了读取栏目代号为top1的栏目下20篇文章。
<rs id="rs1" topic="top1" rows=20>
     <$rs1.art_title$>
</rs>

以下代码演示了读取当前栏目下文章并以20条每页进行分页。
<rs id="rs1" page=20>
     <$rs1.art_title$>
</rs>

以下代码演示了读取sql中前20行数据。
<rs id="rs1" sql="select productid,productname from product" rows=20>
     <$rs1.productname$>
</rs>

以下代码演示了rs嵌套和sql中嵌入JAVA语句。其执行结果是读取product中数据并根据productid读取customer表数据
<rs id="rs1" sql="select productid,productname from product">
     <$rs1.productname$>
     <rs id="rs2" sql=<%="select customer from sales where productid=" + <$rs1.productid$>%>>
         <$rs2.customer$>
     </rs>
</rs>