1、
增加调试区域。方便调试。
在配置文件config/config.properties 配置 system.debug.mode的值。
调试模式开关(开发环境设置为true,生产环境设置为false)
system.debug.mode=true
在Controller中的.java文件,需要赋值。
// 读取调试模式配置,传递给 JSP 页面
// 从 config.properties 中读取 system.debug.mode 配置项
// 如果配置为 true,则在页面上显示调试信息区域
String debugMode = ConfigPropertiesUtil.getProperty("system.debug.mode");
boolean isDebug = "true".equalsIgnoreCase(debugMode);
map.put("isDebug", isDebug);
view中的.jsp文件,就可以根据配置,展示调试区域了。
<!-- 调试信息区域 -->
<c:if test="${isDebug == true}">
<div class="myda_content" style="margin-top: 20px; border-top: 2px solid #e74c3c; padding-top: 20px;">
<div style="background-color: #fff3cd; padding: 10px; border-left: 4px solid #ffc107; margin-bottom: 15px;">
<strong style="color: #856404;">⚠️ 调试模式</strong> - 此区域仅在开发环境显示,生产环境请在 config.properties 中设置 system.debug.mode=false
</div>
<div style="background-color: #f9f9f9; padding: 15px; border: 1px solid #ddd; border-radius: 4px;">
<h5 style="color: #333; margin-top: 0; margin-bottom: 15px;">
📋 XX科技API字段映射与数据对照
<button onclick="displayDebugInfo()" class="btn btn-mini btn-info" style="margin-left: 10px;">🔄 刷新数据</button>
</h5>
<div style="background-color: #d1ecf1; padding: 8px 12px; border-left: 3px solid #0c5460; margin-bottom: 10px; color: #0c5460; font-size: 13px;">
<strong>💡 说明:</strong>此区域展示了页面获取的数据与XX科技API要求的字段一一对应关系,标注了已映射字段和缺失字段
</div>
<pre id="debugJson" style="background-color: #282c34; color: #abb2bf; padding: 15px; border-radius: 4px; overflow-x: auto; font-size: 12px; font-family: 'Courier New', monospace; max-height: 600px; overflow-y: auto;"></pre>
</div>
</div>
</c:if>
2、
PHP 的 MySQL 查询对表别名要求不严格,单表查询时可以省略
Java + Oracle 环境下,一旦使用了表别名(如 FROM MERCHANT_INFO_AUDIT M),所有字段都必须加上别名前缀 M.,否则会导致查询异常
3
MyBatis中,ResultMap与Base_Columen_list中字段顺序不一致,会导致数据不匹配,数据出错。
ResultMap >= Base_Columen_list
4、
运行测试
mvn exec:java -Dexec.mainClass="com.test.UniappTestFile" -Dexec.classpathScope=compile
java -cp "target/classes;WebRoot/WEB-INF/lib/*" com.test.UniappTestFile
5、
添加字段要注意。
如果涉及 国密SM4 加密字段,则对应的_HASH和_MASK字段也要添加。
6、
JSP页面中,存在则显示,不存在则不显示。
<c:choose>
<c:when test="{not empty parentUser}"\>{parentUser.userName} (ID:${audit.parentId})</c:when>
<c:otherwise>ID:${audit.parentId}</c:otherwise>
</c:choose>
7、shiro权限
aaa:bbb
jsp页面里,权限部分的代码,不能只是注释,注释了也会生效,必须删除才行。
8、
搭配的oracle数据库,如果版本不是12或以上,字段名称的大小不能超过30。
java以长名称著称,搭配的oracle字段名长度居然不能超过30,还好后续的版本字段名长度可以达到120了。
9、
choosen会影响javascript控制select的选项。
如果有全局应用,
可以把$("select").chosen();
修改为 $("select:not(.no-chosen)").chosen();
这样只需要设置class="no-chosen"就能指定哪些select不应用chosen了。
如果是chosen的旧版本,则容器的 class 是 chzn-container(不是 chosen-container)。
10、
早期的JAVA框架与现在的PHP框架对比起来,不是很方便。
比如数据库。PHP有orm,spring没有。
JAVA的优势之一是几乎无运行时报错。因为编译会避免很多问题。
但调试时,没PHP方便。编译会花费额外时间。