美文网首页
grails学习(六)--问题小结

grails学习(六)--问题小结

作者: 五秋木 | 来源:发表于2018-04-23 14:32 被阅读0次

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. 插件或者依赖下载和安装:

参考 Grails中引入依赖包/框架/插件

  • 选择mavengrails.project.dependency.resolver = "maven" // or ivy
    1. 在BuildConfig.groovy文件中
    dependencies {//依赖
            runtime 'mysql:mysql-connector-java:5.1.27'
    }
    
    自动下载到.m2\repository\mysql\mysql-connector-java
    测试是否能使用:修改DataSource.groovy添加一个已经存在的mySQL数据库,最终生成的网页能够显示出数据库中的数据。
    1. 添加插件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模板进行设计界面,更省事,更好看。

  1. 下载twitter-bootstrap
    bootstrap详细使用参考https://github.com/groovydev/twitter-bootstrap-grails-plugin
    在Buildcofig.groovy下修改plugins :runtime ":twitter-bootstrap:2.2.2"也可以是最新版3.3.5。
  2. 下载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'
     }
    
  3. 使用runtime形式先试试,之后搜索bootstrap进入官网,下载bootstrap源码,解压后的目录放置到项目文件下grails-app/asset/parties文件夹下,parties可以新建,之后在主页main.gsp模板上适用<asset:>加载,bootstrap.css和bootstrap.js以及选择的模板.css,结果在index上引用main.gsp,显示结果失败。原因未知。
  4. 而在index下直接引用bootstrap.css和bootstrap.js以及选择的模板.css生成合适的结果,问题:如何正确引用模板上加载的css或者js???

相关文章

网友评论

      本文标题:grails学习(六)--问题小结

      本文链接:https://www.haomeiwen.com/subject/kieflftx.html