Java spinrg 4.x 及 jsp 简单心得(PHP转JAVA视角)

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方便。编译会花费额外时间。

相关推荐
Chan168 小时前
【 Java八股文面试 | JavaSE篇 】
java·jvm·spring boot·面试·java-ee·八股
wen__xvn9 小时前
代码随想录算法训练营DAY10第五章 栈与队列part01
java·前端·算法
独自破碎E9 小时前
解释一下NIO、BIO、AIO
java·开发语言·nio
国强_dev9 小时前
在 Java 开发及其生态圈中“声东击西”的误导性错误
java·开发语言
FG.9 小时前
LangChain4j
java·spring boot·langchain4j
linweidong9 小时前
C++thread pool(线程池)设计应关注哪些扩展性问题?
java·数据库·c++
zfj32110 小时前
从源码层面解析一下ThreadLocal的工作原理
java·开发语言·threadlocal
墨笔之风10 小时前
java后端根据双数据源进行不同的接口查询
java·开发语言·mysql·postgres
程序猿阿伟10 小时前
《Python复杂结构静态分析秘籍:递归类型注解的深度实践指南》
java·数据结构·算法
黑白极客11 小时前
怎么给字符串字段加索引?日志系统 一条更新语句是怎么执行的
java·数据库·sql·mysql·引擎