有没有大佬解释下这段代码String name = getPara("prjName") == null ? "" : getPara("prjName");是什么意思,看jfinal文档中的getpara并不是很理解
public void index() {
String name = getPara("prjName") == null ? "" : getPara("prjName");
Page<Restaurant> page = Restaurant.dao.page(getParaToInt("pageNumber", 1), getParaToInt("pageSize", 10), name);
setAttr("page", page);
setAttr("name", name);
render("index.html");
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
String name = getPara("prjName") == null ? "" : getPara("prjName");
首先是执行右边的三元运算,然后将结果赋值给左边的变量。
问号表达式的一般形式:
x? y : z;
执行过程:
x为真,返回y,否则返回z
看见楼上都解释那么详细了,我就不说了
一般情况,getPara(”title”) 返回页面表单域名为“title”参数值
这里,正如楼上各位所言,是个三目表达式。其操作符为: '?' 和 ':'。操作数是: getPara("prjName") == null, "", 和 getPara("prjName")。
String name = getPara("prjName") == null ? "" : getPara("prjName"); 意为:返回页面表单域名为“prjName”参数值, 若遇到 null,则返回空字符串 ""。
getParaToInt(”pageNumber”) 意为:返回页面表单域名为“pageNumber”的参数值并转为 int 型
getParaToInt(getParaToInt("pageNumber" ),1) 意为:返回页面表单域名为“pageNumber”的参数值并转为 int 型, 若遇 null,则返回缺省/默认值 1
getParaToInt(getParaToInt("pageSize", 10) 意为:返回页面表单域名为“pagSize”的参数值并转为 int 型, 若遇 null,则返回缺省/默认值 10
Page<Restaurant> page = .... 意为:
创建一个 Page 类的对象 page, 其泛型(即类型参数)为 餐厅 Restaurant
setAttr("page",page); 意为:设置属性 "page" 值为 page
setAttr("name",name); 意为:设置属性 "name" 值为 name
render("index,html"); 意为:渲染/跳转 index.html,
String name = getPara("prjName") == null ? "" : getPara("prjName");
我猜你不理解的是这一句, 这是个语法糖,有些时候确实方便。
(条件表达式)?true 结果:false结果。
简单翻译下来就是:
if(null == getPara("prjName") ){
name = "";
}else{
name = getPara("prjName") ;
}
就是一个三元表达式
谢谢
getPara是从请求中获得参数啊。。String类型,这个整体就是三元表达式。