【仅供内部供应商使用,不提供对外解答和培训】
【仅供内部供应商使用,不提供对外解答和培训】
用于表示JS或者CSS的的文件内容,是通过普通的文本方式输出的,还是通过程序代码输出的。
| 枚举值 | 含义 |
|---|---|
com.fr.web.struct.category.FileType.PLAIN | 直接路径对应的文件的内容 |
| com.fr.web.struct.category.FileType.CLASS | 输出路径对应的class文件中产生的内容,该class需要继承com.fr.gen.TextGenerator接口 |
用于表示在将JS或者CSS的内容输出到浏览器端的时候,是否需要把文件内部形如${fineServletURL}的内容替换成实际的值。
| 枚举值 | 含义 |
|---|---|
com.fr.web.struct.category.ParserType.PLAIN | 不替换,原样输出文本内容 |
| com.fr.web.struct.category.ParserType.DYNAMIC | 替换 |
package com.fr.gen;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 文本生成器
*/
public interface TextGenerator {
/**
* 生成文本内容
*
* @param req HTTP请求
* @param res HTTP响应
* @return 返回的文本内容
* @throws Exception 生成文本内容失败时抛出此异常
*/
String text(HttpServletRequest req, HttpServletResponse res) throws Exception;
/**
* 文件的媒体类型
* @return 媒体类型
*/
String mimeType();
}
以前端国际化文件为例子,就是采用的FileType.CLASS来输出国际化文件的:
public class I18nTextGenerator implements TextGenerator {
@Override
public String text(HttpServletRequest req, HttpServletResponse res) throws Exception {
Locale locale = WebUtils.getLocale(req);
Map<String, String> map = InterProviderFactory.getClientProvider().getEntireKV(locale);
String originText = new ObjectMapper().writeValueAsString(map);
Map<String, Object> renderMap = new HashMap<String, Object>();
renderMap.put("value", originText);
return TemplateUtils.renderTemplate("/com/fr/decision/web/i18n/i18n.tpl", renderMap);
}
@Override
public String mimeType() {
return "text/javascript";
}
}