aspx跳转页面的符号_解决SpringBoot+MyBatis框架下页面跳转问题与代码优化处理。...
一、關(guān)于頁(yè)面跳轉(zhuǎn)的疑問
- 后臺(tái)「return "/pool/index"」返回的是字符串,會(huì)自動(dòng)尋找名為“index”的頁(yè)面模板文件是怎樣實(shí)現(xiàn)的?
答:這是SpringMVC實(shí)現(xiàn)的,如果在Action層方法名頂部,不能添加注釋“@ResponseBody”否則后臺(tái)會(huì)以數(shù)據(jù)形式返回到前臺(tái)。 
如果action層中的方法,需要返回頁(yè)面,卻添加了“@ResponseBody”注解,就會(huì)出現(xiàn)下面問題: 
- 如果想要返回以“.shtml”后綴的模板文件,需要怎樣設(shè)置?
答:修改application.yml配置文件如下: #################模板參數(shù)配置#################thymeleaf:mode: HTML5 prefix: classpath:/templates/ suffix: .shtml servlet: content-type: text/html mvc: static-path-pattern: /** resources: static-locations: classpath:/webapp/, classpath:/META-(換行)INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
- 注意,不建議在action層,RequestMapping中配置以“.html”結(jié)束的請(qǐng)求名。
原因:會(huì)與頁(yè)面文件重復(fù),分不清是文件名還是請(qǐng)求。也不利于后續(xù)代碼維護(hù)。
- 關(guān)于action層返回值是「頁(yè)面模板文件名」或「redirect:/請(qǐng)求名」
以下面代碼為例:
@RequestMapping("/receive-success.shtml") 
public String reciveSuccess(HttpServletRequest request,Model model) { 
 String mobile = (String) request.getSession().getAttribute("mobile"); 
 if(mobile == null) { 
 return "redirect:/index.shtml"; ----------1 
 } 
 return "receiveSuccess"; --------------------2 
} 
1:后臺(tái)重定向符號(hào),發(fā)起了新的后臺(tái)請(qǐng)求;此處未處理完成,需要再發(fā)送請(qǐng)求,請(qǐng)求內(nèi)容是「/index.shtml」
2:在工程中尋找指定文件名的頁(yè)面模板文件;此處已處理完成,只需把已處理好的數(shù)據(jù)(或者沒有數(shù)據(jù)),發(fā)給頁(yè)面模板文件展示即可(ps:也可以理解為html后綴的頁(yè)面文件)。
二、后臺(tái)錯(cuò)誤處理的疑問
在外部審計(jì)平臺(tái)中已實(shí)現(xiàn)效果:后臺(tái)若拋出異常信息{"code","msg"},在某個(gè)ErrorAction中統(tǒng)一處理,展現(xiàn)給用戶的是一個(gè)自定義錯(cuò)誤頁(yè)面,頁(yè)面風(fēng)格統(tǒng)一,同時(shí)能顯示異常信息msg的內(nèi)容和返回之前正常頁(yè)面的按鈕。
三、關(guān)于優(yōu)化equity項(xiàng)目代碼:
用stringMap把所有bean的屬性逐一存進(jìn)去,影響代碼可讀性,并且寫起來(lái)也麻煩
方案1:最簡(jiǎn)單的,在bean中添加一些屬性,后臺(tái)方法查詢出來(lái)的另一些屬性,設(shè)置進(jìn)去。或者根據(jù)聯(lián)合查詢,獲取需要的屬性值。
方案2:擔(dān)心污染bean的有序性?查詢出來(lái)的所有屬性,按照bean分類存儲(chǔ),thymleaf中用「beanA.屬性;beanB.屬性;屬性」的方式取出來(lái)。
方案3:最規(guī)范的,使用po「存儲(chǔ)object」和vo「展示object」,不同對(duì)象的用途不同,缺點(diǎn)是麻煩,如果僅有幾個(gè)屬性不建議這樣做。
擔(dān)心上線后,由于少數(shù)后臺(tái)參數(shù)錯(cuò)誤導(dǎo)致整個(gè)頁(yè)面錯(cuò)誤?
thymleaf中使用下面寫法:「bean?.屬性」或「屬性.」
特殊字符:三角符號(hào)
?
代碼建議:
無(wú)需實(shí)例化 dateUtils
若需要實(shí)例化,請(qǐng)加上@Autoweird或@Resource@service注解
四、頁(yè)面代碼優(yōu)化:
thymleaf模板注意事項(xiàng)
注意:
下面這段代碼中{{if type}} {{else} {{/if}}不能濫用,因?yàn)槿魌ype的類型為int,后臺(tái)傳來(lái)的值為「0」則解析時(shí),認(rèn)為沒有獲取值,因此表格中會(huì)顯示為「null」。
{{if type}}<td>${type}</td>{{else}}<td>undefined</td>{{/if}} 親測(cè)截圖:選中行的所有值都為0,其中「權(quán)益類型、申請(qǐng)環(huán)境、有效期限」字段的類型為int,如果使用下面的代碼,效果如下:
            {{if name}}<td>${name}</td>{{else}}<td>null</td>{{/if}} {{if type}}<td>${type}</td>{{else}}<td>null</td>{{/if}} {{if productId}}<td>${productId}</td>{{else}}<td>null</td>{{/if}} {{if channelId}}<td>${channelId}</td>{{else}}<td>null</td>{{/if}} {{if currentCostCount}}<td>${currentCostCount}</td>{{else}}<td>null</td>{{/if}} {{if environmentType}}<td>${environmentType}</td>{{else}}<td>null</td>{{/if}} {{if validPeriod}}<td>${validPeriod}</td>{{else}}<td>null</td>{{/if}} {{if approveStatus}}<td>${approveStatus}</td>{{else}}<td>null</td>{{/if}} 總結(jié)
以上是生活随笔為你收集整理的aspx跳转页面的符号_解决SpringBoot+MyBatis框架下页面跳转问题与代码优化处理。...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 苒开头的成语有哪些?
- 下一篇: 古代二十两银子,等于现在人民币多少?
