1.大坑:
在BootStrap中有自动添加几种书的记录时,要把所有的属性都要赋值,不然记录添加不到表中,同时赋值的时候还不能为空,不然还会添加不到表中。起初还以为配置出了问题,卸了重装,我脆弱的心灵需要呵护....
另外注意路径表示的时候,适用/,而不是windows下的\,不然容易报错。
2. 图片加载
图片加载不上去,本地出问题,可能是路径出了问题,${resource(dir: 'images', file: 'name.jpg')}
可行,在photoUrl中存放文件名,将所有的图片放到web-app/images/下,<img src="${resource(dir: 'images', file: "${fieldValue(bean:goodsInstance,field:'photoUrl')}")}"/>
这样即可表示图片链接,完成。
联网倒是可以加载上图片。
加载格式:<img src="${fieldValue(bean:goodsInstance,field:'photoUrl')}"/>
其中:photoUrl为图片网络地址。
也可以使用asset来加载图片,<img src="${assetPath(src:"9.jpg")}" >
3. fieldset与g:render
暂时没有看懂输入输出的建立和内容的填写。代码如下:
<g:hiddenField name="version" value="${goodsInstance?.version}" />
--}%%{--<fieldset class="form">
<g:render template="form"/>
--}%%{----}%%{--上面一句话,创建了商品的修改模式--}%%{----}%%{--
</fieldset>--}%%{--
<fieldset class="buttons">
使用书上的教程,代码如下:
<g:form method="post">
<input type="hidden" name="id" value="${goodsInstance?.id}"/>
<br/>
<input type="text" id="title" name="title" value="${fieldValue(bean:goodsInstance,field:'title')}"/>
<br/>
<input type="text" id="photoUrl" name="photoUrl" value="${fieldValue(bean:goodsInstance,field:'photoUrl')}"/>
<br/>
<input type="text" id="price" name="price" value="${fieldValue(bean:goodsInstance,field:'price')}"/>
<br/>
<g:actionSubmit class="save" action="update" value="Update"/>
%{--update失败--}%
</g:form>
结果只能显示出文本输入框,复选框能显示,但不显示可选内容(大概是因为没有传递进表单信息,如何传递?),而且不能update,失败。
4. actionSubmit参数
<g:actionSubmit class="save" action="update" value="Update"/>
各个参数的含义不懂。value:显示的文本,action:指定接受请求的文本
5. ajax请求响应
ajax请求响应未成功,出现问题。之前出现的是jQuery未定义,原因:本地引用失败。
-
网络引用:
后来不引用main模板,网络上提前引用jQuery.min.js和jQuery.form.min.js放在ajax.gsp中<head></head>之间。
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdn.bootcss.com/jquery.form/4.2.2/jquery.form.min.js"></script>
还是出问题,500原因:输入链接的时候出现&会转化为html格式,将grails.viewsg.gsp.codec.expression="none",最后成功。、
>在控制器文件下书写println(n1,params.n1)
出错,修改成两个即可。最终成功。
-
本地引用:
参考文章 Grails手工增加资源文件
https://ask.helplib.com/jquery/post_961865
runtime ":jquery:1.11.1"
直接下载jquery插件,在使用jquery的gsp页面里添加
<g:javascript library='jquery'/>
<r:layoutResources/>
或者
<r:require module="jquery"/>
<r:layoutResources/>
-
使用main模板:尚待解决。
6. ajaxForm
书写成功,输入框输入数据,计算输入值的和。
7. 插件或者依赖下载和安装:
- 选择maven
grails.project.dependency.resolver = "maven" // or ivy
- 在BuildConfig.groovy文件中
自动下载到dependencies {//依赖 runtime 'mysql:mysql-connector-java:5.1.27' }
.m2\repository\mysql\mysql-connector-java
下
测试是否能使用:修改DataSource.groovy添加一个已经存在的mySQL数据库,最终生成的网页能够显示出数据库中的数据。- 添加插件twitter-bootstrap:2.2.2
自动下载到plugins { // plugins needed at runtime but not for compilation runtime ":jquery:1.11.1" runtime ":twitter-bootstrap:2.2.2" }
.m2\repository\org\grails\plugins\twitter-bootstrap
文件夹下。同时所有的插件在项目\target\work\plugins
文件夹下存在。 - 选择ivy
grails.project.dependency.resolver = "ivy" // or maven
mysql-connector-java:5.1.27
自动下载到.grails\ivy-cache\mysql\mysql-connector-java\jars
runtime ":twitter-bootstrap:2.2.2"
自动下载到.grails\ivy-cache\org.grails.plugins
运行正常无错。
8. 导入bootstrap模板
可以参考文章https://blog.csdn.net/laoxue6699/article/details/9788693,自建模板main,之后适用即可
使用bootstrap模板进行设计界面,更省事,更好看。
- 下载twitter-bootstrap
bootstrap详细使用参考https://github.com/groovydev/twitter-bootstrap-grails-plugin
在Buildcofig.groovy下修改plugins :runtime ":twitter-bootstrap:2.2.2"
也可以是最新版3.3.5。 - 下载asset-pipeline,如果不知道具体插件名和版本,可以使用在命令行下使用
graisl list plugin
查询,然后在plugins下添加runtime ":asset-pipeline:2.14.1"
,即可添加成功。好像如下代码也行,链接在http://plugins.grails.org/plugin/grails/asset-pipeline,有点搞不懂grails中插件下载的方式,是plugins还是dependencies。dependencies { compile 'org.grails.plugins:asset-pipeline:3.2.1' }
- 使用runtime形式先试试,之后搜索bootstrap进入官网,下载bootstrap源码,解压后的目录放置到项目文件下grails-app/asset/parties文件夹下,parties可以新建,之后在主页main.gsp模板上适用<asset:>加载,bootstrap.css和bootstrap.js以及选择的模板.css,结果在index上引用main.gsp,显示结果失败。原因未知。
- 而在index下直接引用bootstrap.css和bootstrap.js以及选择的模板.css生成合适的结果,问题:如何正确引用模板上加载的css或者js???
网友评论