├── .classpath
├── .gitignore
├── .project
├── .settings
├── .jsdtscope
├── org.eclipse.core.resources.prefs
├── org.eclipse.jdt.core.prefs
├── org.eclipse.wst.common.component
├── org.eclipse.wst.common.project.facet.core.xml
├── org.eclipse.wst.jsdt.ui.superType.container
└── org.eclipse.wst.jsdt.ui.superType.name
├── LICENSE
├── README.md
├── WebRoot
├── META-INF
│ └── MANIFEST.MF
├── WEB-INF
│ ├── config
│ │ └── QQWry.Dat
│ ├── locale
│ │ ├── common
│ │ │ ├── message.properties
│ │ │ ├── message_en_US.properties
│ │ │ └── message_zh_CN.properties
│ │ ├── console
│ │ │ ├── message.properties
│ │ │ ├── message_en_US.properties
│ │ │ └── message_zh_CN.properties
│ │ └── website
│ │ │ ├── message.properties
│ │ │ ├── message_en_US.properties
│ │ │ └── message_zh_CN.properties
│ ├── views
│ │ └── common
│ │ │ ├── error.html
│ │ │ └── ftl
│ │ │ ├── spring.ftl
│ │ │ └── web.ftl
│ └── web.xml
├── index.html
└── themes
│ ├── black
│ └── css
│ │ └── webfinal.css
│ ├── blue
│ └── css
│ │ └── webfinal.css
│ ├── default
│ └── css
│ │ └── webfinal.css
│ ├── green
│ └── css
│ │ └── webfinal.css
│ └── red
│ └── css
│ └── webfinal.css
├── books
├── api
│ └── api_kuaidi100快递公司代码.doc
├── mybatis-3.3.0.pdf
├── spring-4.2.0.pdf
└── web
│ ├── Tomcat性能优化.txt
│ ├── ehcache.xml
│ ├── nginx.conf
│ └── server.xml
├── build
└── classes
│ ├── .gitignore
│ ├── app.properties
│ ├── cache
│ ├── ehcache.xml
│ └── ehcache.xsd
│ ├── jdbc.properties
│ ├── log4j.properties
│ ├── mybatis
│ └── config.xml
│ └── theme
│ ├── black.properties
│ ├── blue.properties
│ ├── default.properties
│ ├── green.properties
│ ├── orange.properties
│ └── red.properties
├── resource
├── cache
│ ├── ehcache.xml
│ └── ehcache.xsd
├── config
│ ├── express.properties
│ └── freemarker.properties
├── mybatis
│ └── config.xml
├── spring
│ ├── applicationContext-mail.xml
│ ├── applicationContext-mvc.xml
│ ├── applicationContext-shiro.xml
│ └── applicationContext.xml
└── theme
│ ├── black.properties
│ ├── blue.properties
│ ├── default.properties
│ ├── green.properties
│ ├── orange.properties
│ └── red.properties
└── src
├── app.properties
├── com
└── binrui
│ └── shop
│ ├── express
│ ├── action
│ │ └── ExpressController.java
│ └── service
│ │ └── ExpressService.java
│ ├── home
│ └── action
│ │ └── HomeController.java
│ ├── order
│ └── action
│ │ └── OrderController.java
│ ├── pay
│ └── alipay
│ │ ├── action
│ │ ├── AlipayController.java
│ │ └── AlipayReportController.java
│ │ ├── config
│ │ └── AlipayConfig.java
│ │ ├── dao
│ │ └── AlipayDao.java
│ │ ├── service
│ │ ├── AlipayReportService.java
│ │ └── AlipayService.java
│ │ ├── sign
│ │ ├── Base64.java
│ │ ├── MD5.java
│ │ └── RSA.java
│ │ └── util
│ │ ├── AlipayCore.java
│ │ ├── AlipayNotify.java
│ │ ├── AlipaySubmit.java
│ │ ├── UtilDate.java
│ │ └── http
│ │ ├── HttpProtocolHandler.java
│ │ ├── HttpRequest.java
│ │ ├── HttpResponse.java
│ │ └── HttpResultType.java
│ ├── utils
│ ├── ApiUtils.java
│ └── MD5Util.java
│ └── web
│ └── BinRuiExceptionResolver.java
├── jdbc.properties
└── log4j.properties
/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 |
3 | # Mobile Tools for Java (J2ME)
4 | .mtj.tmp/
5 |
6 | # Package Files #
7 | *.jar
8 | *.war
9 | *.ear
10 |
11 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
12 | hs_err_pid*
13 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | shopping
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.wst.jsdt.core.javascriptValidator
10 |
11 |
12 |
13 |
14 | org.eclipse.jdt.core.javabuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.wst.common.project.facet.core.builder
20 |
21 |
22 |
23 |
24 | org.eclipse.wst.validation.validationbuilder
25 |
26 |
27 |
28 |
29 |
30 | org.eclipse.jem.workbench.JavaEMFNature
31 | org.eclipse.wst.common.modulecore.ModuleCoreNature
32 | org.eclipse.wst.common.project.facet.core.nature
33 | org.eclipse.jdt.core.javanature
34 | org.eclipse.wst.jsdt.core.jsNature
35 |
36 |
37 |
--------------------------------------------------------------------------------
/.settings/.jsdtscope:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding//resource/cache/ehcache.xml=UTF-8
3 | encoding//resource/config/express.properties=UTF-8
4 | encoding//src/app.properties=UTF-8
5 | encoding//src/com/binrui/shop/pay/alipay/action/AlipayController.java=UTF-8
6 | encoding//src/com/binrui/shop/pay/alipay/action/AlipayReportController.java=UTF-8
7 | encoding//src/com/binrui/shop/pay/alipay/config/AlipayConfig.java=UTF-8
8 | encoding//src/com/binrui/shop/pay/alipay/service/AlipayReportService.java=UTF-8
9 | encoding//src/com/binrui/shop/pay/alipay/service/AlipayService.java=UTF-8
10 | encoding//src/com/binrui/shop/pay/alipay/sign/MD5.java=UTF-8
11 | encoding//src/com/binrui/shop/pay/alipay/sign/RSA.java=UTF-8
12 | encoding//src/com/binrui/shop/pay/alipay/util/AlipayCore.java=UTF-8
13 | encoding//src/com/binrui/shop/pay/alipay/util/AlipayNotify.java=UTF-8
14 | encoding//src/com/binrui/shop/pay/alipay/util/AlipaySubmit.java=UTF-8
15 | encoding//src/com/binrui/shop/pay/alipay/util/UtilDate.java=UTF-8
16 | encoding//src/com/binrui/shop/pay/alipay/util/http/HttpProtocolHandler.java=UTF-8
17 | encoding//src/com/binrui/shop/pay/alipay/util/http/HttpRequest.java=UTF-8
18 | encoding//src/com/binrui/shop/pay/alipay/util/http/HttpResponse.java=UTF-8
19 | encoding//src/com/binrui/shop/pay/alipay/util/http/HttpResultType.java=UTF-8
20 | encoding//src/log4j.properties=UTF-8
21 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
4 | org.eclipse.jdt.core.compiler.compliance=1.7
5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7 | org.eclipse.jdt.core.compiler.source=1.7
8 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.wst.common.component:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.wst.common.project.facet.core.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.wst.jsdt.ui.superType.container:
--------------------------------------------------------------------------------
1 | org.eclipse.wst.jsdt.launching.baseBrowserLibrary
--------------------------------------------------------------------------------
/.settings/org.eclipse.wst.jsdt.ui.superType.name:
--------------------------------------------------------------------------------
1 | Window
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "{}"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright 2015 BinRui Technology Co.,Ltd
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
203 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # shopping
2 | shopping mall for company or farmers.
3 |
--------------------------------------------------------------------------------
/WebRoot/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Class-Path:
3 |
4 |
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/config/QQWry.Dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/binrui/shopping/46c8ab64c2cbeb2adbc33c3d66126cc77e12f43f/WebRoot/WEB-INF/config/QQWry.Dat
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/locale/common/message.properties:
--------------------------------------------------------------------------------
1 | project.item.name=Jamesli
2 |
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/locale/common/message_en_US.properties:
--------------------------------------------------------------------------------
1 | common.app.name=Inspur Egoverment Data Monitoring System
2 | common.app.version=v2.0
3 | common.app.shortname=Framework
4 | common.app.login=Sign In
5 | common.app.userlogin=Sign In
6 | common.app.calogin=CA Sign In
7 | common.app.register=Create account now?
8 | common.app.forget=Forgot password?
9 | common.app.introduce=Home
10 | common.app.help=Help
11 | common.app.helpcenter=Help
12 | common.app.client=Download
13 | common.app.language=Language
14 | common.app.theme=Theme
15 | common.app.exit=Logout
16 | common.app.operation=Operation
17 | common.app.warning=Warning
18 | common.app.successTip=Congratulations\uff0coperation successful\!
19 | common.app.failTip=Sorry\uff0coperation failed\!
20 | common.app.location=location
21 | common.login.account=Account
22 | common.login.password=Password
23 | common.login.remeber=remeber me
24 | common.footer.organizer=Organizer
25 | common.footer.organizer.name=Inspur Software Com.Tld
26 | common.footer.undertake=Undertaker
27 | common.footer.undertake.name=Inspur Software Egoverment Departement
28 | common.footer.support=Support
29 | common.footer.email=egov@inspur.com
30 | common.footer.phone=0531-12345678
31 | common.footer.record=No. 123456789E-ICP
32 | common.footer.copyright=Copyright
33 | common.language.zh=Simple Chinese
34 | common.language.en=English
35 | common.theme.default=default
36 | common.theme.black=black
37 | common.theme.blue=blue
38 | common.theme.green=green
39 | common.theme.orange=orange
40 | common.theme.red=red
41 | common.button.edit=Edit
42 | common.button.search=Search
43 | common.button.reset=Reset
44 | common.button.delete=Delete
45 | common.button.add=Add
46 | common.button.look=Look
47 | common.button.archive=Archive
48 | common.button.deploy=Deploy
49 | common.button.select=Choose
50 | common.button.config=Config
51 | common.button.register=register
52 | common.button.sign=sign
53 | common.button.release=release
54 | common.button.done=done
55 | common.grid.submitTime=Submit Time
56 | common.grid.createTime=Create Time
57 | common.grid.handleTime=Handle Time
58 | common.grid.pageNum=Number
59 | common.grid.pageLabelFunction=showing {0} pages\uff0c {1} records
60 | common.grid.pageNumber=showing page {0}
61 | common.grid.pageTotal=total {0} records
62 | common.grid.pageFirst=First
63 | common.grid.pagePrev=Previous
64 | common.grid.pageNext=Next
65 | common.grid.pageLast=Last
66 | common.month.one=Jan
67 | common.month.two=Feb
68 | common.month.three=Mar
69 | common.month.four=Apr
70 | common.month.five=May
71 | common.month.six=Jun
72 | common.month.seven=Jul
73 | common.month.eight=Aug
74 | common.month.nine=Sep
75 | common.month.ten=Oct
76 | common.month.eleven=Nov
77 | common.month.twelve=Dec
78 | common.action.submit=Submit
79 | common.action.save=Save
80 | common.action.back=Back
81 | common.action.prompt=The system prompt
82 | common.action.successDel=Delete the success
83 | common.action.failedDel=Delete failed
84 | common.action.revoke=Revoke
85 | common.action.hangup=Hangup
86 | common.action.ok=OK
87 | common.action.cancel=Cancel
88 | common.action.close=Close
89 | common.file.upload=Upload
90 | common.file.download=Download
91 | common.file.preview=Preview
92 | common.confirm.yes=Yes
93 | common.confirm.no=No
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/locale/common/message_zh_CN.properties:
--------------------------------------------------------------------------------
1 | common.app.name=\u5f6c\u777f\u519c\u5546\u5e73\u53f0
2 | common.app.version=v2.0
3 | common.app.shortname=\u57fa\u7840\u6846\u67b6
4 | common.app.login=\u767b \u5f55
5 | common.app.userlogin=\u7528\u6237\u767b\u5f55
6 | common.app.register=\u73b0\u5728\u5c31\u53bb\u6ce8\u518c\u65b0\u8d26\u6237?
7 | common.app.forget=\u5fd8\u8bb0\u5bc6\u7801\uff1f
8 | common.app.calogin=CA\u8bc1\u4e66\u767b\u5f55
9 | common.app.introduce=\u7cfb\u7edf\u7b80\u4ecb
10 | common.app.help=\u5e2e\u52a9
11 | common.app.helpcenter=\u5e2e\u52a9\u4e2d\u5fc3
12 | common.app.client=\u5ba2\u6237\u7aef
13 | common.app.language=\u9009\u62e9\u8bed\u8a00
14 | common.app.theme=\u9009\u62e9\u4e3b\u9898
15 | common.app.exit=\u9000\u51fa
16 | common.app.operation=\u64cd\u4f5c
17 | common.app.warning=\u7cfb\u7edf\u63d0\u793a
18 | common.app.successTip=\u606d\u559c\u60a8\uff0c\u64cd\u4f5c\u6210\u529f\uff01
19 | common.app.failTip=\u5bf9\u4e0d\u8d77\uff0c\u64cd\u4f5c\u5931\u8d25\u4e86\!
20 | common.app.location=\u5f53\u524d\u4f4d\u7f6e
21 | common.login.account=\u767b\u5f55\u8d26\u53f7
22 | common.login.password=\u767b\u5f55\u5bc6\u7801
23 | common.login.remeber=\u8bb0\u4f4f\u5bc6\u7801
24 | common.footer.organizer=\u4e3b\u529e\u5355\u4f4d
25 | common.footer.organizer.name=\u6d6a\u6f6e\u8f6f\u4ef6\u80a1\u4efd\u6709\u9650\u516c\u53f8
26 | common.footer.undertake=\u627f\u529e\u5355\u4f4d
27 | common.footer.undertake.name=\u6d6a\u6f6e\u8f6f\u4ef6\u7535\u5b50\u653f\u52a1\u4e8b\u4e1a\u90e8
28 | common.footer.support=\u6280\u672f\u652f\u6301
29 | common.footer.email=egov@inspur.com
30 | common.footer.phone=0531-12345678
31 | common.footer.record=\u9c81No. 123456789E-ICP
32 | common.footer.copyright=\u7248\u6743\u6240\u6709
33 | common.language.zh=\u7b80\u4f53\u4e2d\u6587
34 | common.language.en=English
35 | common.theme.default=\u9ed8\u8ba4
36 | common.theme.black=\u9ed1\u8272
37 | common.theme.blue=\u84dd\u8272
38 | common.theme.green=\u7eff\u8272
39 | common.theme.orange=\u6a59\u8272
40 | common.theme.red=\u7ea2\u8272
41 | common.button.edit=\u7f16\u8f91
42 | common.button.search=\u67e5\u8be2
43 | common.button.reset=\u91cd\u7f6e
44 | common.button.delete=\u5220\u9664
45 | common.button.add=\u589e\u52a0
46 | common.button.look=\u67e5\u770b
47 | common.button.archive=\u5f52\u6863
48 | common.button.deploy=\u90e8\u7f72
49 | common.button.select=\u9009\u62e9
50 | common.button.config=\u914d\u7f6e
51 | common.button.register=\u7533\u8bf7\u767b\u8bb0
52 | common.button.sign=\u7b7e\u6536
53 | common.button.release=\u91ca\u653e
54 | common.button.done=\u5904\u7406
55 | common.grid.submitTime=\u63d0\u4ea4\u65f6\u95f4
56 | common.grid.createTime=\u521b\u5efa\u65f6\u95f4
57 | common.grid.handleTime=\u5904\u7406\u65f6\u95f4
58 | common.grid.pageNum=\u5e8f\u53f7
59 | common.grid.pageLabelFunction=\u5171{0} \u9875\uff0c {1} \u6761\u8bb0\u5f55
60 | common.grid.pageNumber=\u5171 {0} \u9875
61 | common.grid.pageTotal={0} \u6761\u8bb0\u5f55
62 | common.grid.pageFirst=\u9996\u9875
63 | common.grid.pagePrev=\u4e0a\u4e00\u9875
64 | common.grid.pageNext=\u4e0b\u4e00\u9875
65 | common.grid.pageLast=\u672b\u9875
66 | common.month.one=1\u6708\u4efd
67 | common.month.two=2\u6708\u4efd
68 | common.month.three=3\u6708\u4efd
69 | common.month.four=4\u6708\u4efd
70 | common.month.five=5\u6708\u4efd
71 | common.month.six=6\u6708\u4efd
72 | common.month.seven=7\u6708\u4efd
73 | common.month.eight=8\u6708\u4efd
74 | common.month.nine=9\u6708\u4efd
75 | common.month.ten=10\u6708\u4efd
76 | common.month.eleven=11\u6708\u4efd
77 | common.month.twelve=12\u6708\u4efd
78 | common.action.submit=\u63d0\u4ea4
79 | common.action.save=\u4fdd\u5b58
80 | common.action.back=\u56de\u9000
81 | common.action.revoke=\u64a4\u9500
82 | common.action.hangup=\u6302\u8d77
83 | common.action.ok=\u786e\u5b9a
84 | common.action.cancel=\u53d6\u6d88
85 | common.action.close=\u5173\u95ed
86 | common.action.prompt=\u7cfb\u7edf\u63d0\u793a
87 | common.action.successDel=\u5220\u9664\u6210\u529f
88 | common.action.failedDel=\u5220\u9664\u5931\u8d25
89 | common.file.upload=\u4e0a\u4f20
90 | common.file.download=\u4e0b\u8f7d
91 | common.file.preview=\u9884\u89c8
92 | common.confirm.yes=\u662f
93 | common.confirm.no=\u5426
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/locale/console/message.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/binrui/shopping/46c8ab64c2cbeb2adbc33c3d66126cc77e12f43f/WebRoot/WEB-INF/locale/console/message.properties
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/locale/console/message_en_US.properties:
--------------------------------------------------------------------------------
1 | console.server.database=DataBase
2 | console.server.databaseNo=Number
3 | console.server.databaseName=\u6570\u636e\u5e93\u540d\u79f0
4 | console.server.databaseIp=\u670d\u52a1\u5668IP\u5730\u5740
5 | console.server.databasePort=Port
6 | console.server.databaseType=\u6570\u636e\u5e93\u7c7b\u578b
7 | console.server.databaseDriver=JDBC \u9a71\u52a8
8 | console.server.databaseUrl=JDBC \u8fde\u63a5
9 | console.server.databaseUname=\u767b\u5f55\u7528\u6237\u540d
10 | console.server.databasePwd=\u767b \u5f55 \u5bc6 \u7801
11 | console.server.databaseRepwd=Repeat Password
12 | console.server.databaseHasSlave=\u662f\u5426\u6709\u4ece\u5e93
13 | console.server.databaseRemark=\u6570\u636e\u5e93\u63cf\u8ff0
14 | console.server.databaseTags=\u6570\u636e\u5e93\u6807\u7b7e
15 | console.server.databaseTagsTip=Please input database server function tags
16 | console.server.databaseOrder=\u6570\u636e\u5e93\u6392\u5e8f
17 | console.server.user=User
18 | console.server.noQueryData=No query to the relevant data
19 |
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/locale/console/message_zh_CN.properties:
--------------------------------------------------------------------------------
1 | console.server.database=\u6570\u636e\u5e93
2 | console.server.databaseNo=\u6570\u636e\u5e93\u7f16\u53f7
3 | console.server.databaseName=\u6570\u636e\u5e93\u540d\u79f0
4 | console.server.databaseIp=\u670d\u52a1\u5668\u5730\u5740
5 | console.server.databasePort=\u670d\u52a1\u5668\u7aef\u53e3
6 | console.server.databaseType=\u6570\u636e\u5e93\u7c7b\u578b
7 | console.server.databaseDriver=JDBC \u9a71\u52a8
8 | console.server.databaseUrl=JDBC \u8fde\u63a5
9 | console.server.databaseUname=\u767b\u5f55\u7528\u6237\u540d
10 | console.server.databasePwd=\u767b \u5f55 \u5bc6 \u7801
11 | console.server.databaseRepwd=\u91cd \u590d \u5bc6 \u7801
12 | console.server.databaseHasSlave=\u662f\u5426\u6709\u4ece\u5e93
13 | console.server.databaseRemark=\u6570\u636e\u5e93\u63cf\u8ff0
14 | console.server.databaseTags=\u6570\u636e\u5e93\u6807\u7b7e
15 | console.server.databaseTagsTip=\u8bf7\u8f93\u5165\u670d\u52a1\u529f\u80fd\u6807\u7b7e...
16 | console.server.databaseOrder=\u6570\u636e\u5e93\u6392\u5e8f
17 | console.server.user=\u7528\u6237
18 | console.server.noQueryData=\u6ca1\u6709\u67e5\u8be2\u5230\u76f8\u5173\u6570\u636e
19 |
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/locale/website/message.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/binrui/shopping/46c8ab64c2cbeb2adbc33c3d66126cc77e12f43f/WebRoot/WEB-INF/locale/website/message.properties
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/locale/website/message_en_US.properties:
--------------------------------------------------------------------------------
1 | website.host.withoutHostBusiness=Delegated host
2 | website.host.configurationHost=The server configuration
3 | website.host.add=add
4 | website.host.hostIP=Server IP
5 | website.host.hostTags=Server type
6 | website.host.All=all
7 | website.host.serverCloud=Cloud Server
8 | website.host.serverVirtual=Virtual Server
9 | website.host.serverPhysics=Physical Server
10 | website.host.applicationServer=The application server
11 | website.host.proxyServer=The proxy server
12 | website.host.componentServer=Component server
13 | website.host.databaseServer=The database server
14 | website.host.mailServer=Mail Server
15 | website.host.msgServer=Message Server
16 | website.host.fileServer=File Server
17 | website.host.computServer=Computer Server
18 | website.host.storeServer=Store Server
19 | website.host.serverNetwork=Server network
20 | website.host.networkPersonal=VPN
21 | website.host.networkInternet=Internet
22 | website.host.networkGoverment=Public Net
23 | website.host.networPrivate=Private Net
24 | website.host.serverLocation=Server location
25 | website.host.serverOrder=Server order
26 | website.host.serverProvider=Server Provider
27 | website.host.serverRemark=Server description
28 | website.host.serverType=Server Type
29 | website.host.serverName=Server Name
30 | website.host.serverCpu=CPU Kernel
31 | website.host.serverCpuUnit=Kenel
32 | website.host.serverMem=Memery Size
33 | website.host.serverNetgap=Net BandWidth
34 | website.host.serverOs=Server OS
35 | website.host.serverAdd=Server Add
36 | website.host.serverEdit=Server Edit
37 | website.host.serverConfirmDel=Are you sure you want to delete the server
38 | website.bsnum.withoutHostBusiness=can't find database servers
39 | website.node.serverType=The database type
40 | website.node.serverPort=Port
41 | website.node.serverTags=Tags
42 | website.node.serverOrder=Order
43 | website.node.serverUserName=User name
44 | website.node.serverPassword=Password
45 | website.node.serverPassword2=Repeat the password
46 | website.node.serverAdd=Add database
47 | website.node.serverTest=Test
48 | website.node.serverConfirmDel=Are you sure you want to delete the database
49 | website.node.serverTestSuccess=Connect the test successfully
50 | website.node.master=Master
51 | website.node.connect=Connect
52 | website.node.role=Role
53 | website.node.runTime=Run Time
54 | website.node.version=Version
55 | website.node.threadRunning=ThreadRunning
56 | website.node.threadConnected=ThreadConnected
57 | website.node.threadWaits=ThreadWaiting
58 | website.node.receivedPersond=ReceivedPersond
59 | website.node.sentPersond=SentPersond
60 | website.node.queryPersond=QueryPersond
61 | website.node.transactionPersond=Transaction
62 | website.node.checkReport=Check Report
63 | website.node.nodeInitialize=Database initialization
64 | website.node.hostInitialize=Server initialization
65 | website.node.maxConnect=Max Connected
66 | website.node.maxConnectError=Max Connected Error
67 | website.node.openFilesLimit=Open Files Limit
68 | website.node.openFiles=Open Files
69 | website.node.tableOpenCache=Table Open Cache
70 | website.node.openTables=Open Tables
71 | website.node.host=Host
72 | website.node.basicInformation=Basic Info
73 | website.node.thread=Thread
74 | website.node.network=Net Work
75 | website.node.healthInformation=No Information For Health Check.
76 | website.node.connectResource=Connect Resource
77 | website.node.fileResource=Files Resource
78 | website.node.tableResource=Tables Resource
79 | website.node.propertyInformation=No Information For Property.
80 | website.node.Monitoring=Monitoring
81 | website.node.SendEmail=Send Email
82 | website.node.SendMessage=Send Message
83 | website.node.SlowQuery=The slow query
84 | website.node.threadConnect=Connection thread
85 | website.node.threadRun=Active threads
86 | website.node.threadWait=Waiting for the thread
87 | website.node.MonitoringFrequency=Monitoring frequency
88 | website.node.Seconds=seconds
89 | website.node.Minutes=Minutes
90 | website.node.opened=open
91 | website.node.closed=close
92 | website.node.switch=Supervisory switch
93 | website.node.alarmProject=The alarm project
94 | website.warning.slowQueryAnalysis=Slow Query Analysis
95 | website.warning.SQL=SQL
96 | website.warning.queryTime=QueryTime
97 | website.warning.lockTime=LockTime
98 | website.warning.checksum=CheckSum
99 | website.warning.fingerprint=FingerPrint
100 | website.warning.lastseen=Last Seen
101 | website.warning.tscnt=Number Of Times
102 | website.warning.sum=SUM
103 | website.warning.min=MIN
104 | website.warning.max=MAX
105 | website.node.fresh=Fresh
106 | website.node.success=Success
107 | website.node.failed=Failed
108 | website.node.hours=hours
109 | website.node.time=time
110 | website.node.maxAlarmTimes=Send the alarm mail maximum times
111 | website.node.SleepTime=Send the alarm mail sleep time
112 | website.node.AlarmRecipient=The alarm mail recipients
113 | website.node.maxAlarmMessage=Maximum number of send alarm messages
114 | website.node.SleepTimeMessage=Send the alarm message sleep time
115 | website.node.AlarmRecipientMessage=The alarm message recipients
116 |
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/locale/website/message_zh_CN.properties:
--------------------------------------------------------------------------------
1 | website.host.withoutHostBusiness=\u6682\u65e0\u670d\u52a1\u5668
2 | website.host.configurationHost=\u670d\u52a1\u5668\u914d\u7f6e
3 | website.host.add=\u6dfb\u52a0
4 | website.host.hostIP=\u670d\u52a1\u5668IP
5 | website.host.hostTags=\u670d\u52a1\u5668\u6807\u7b7e
6 | website.host.All=\u5168\u90e8
7 | website.host.serverCloud=\u4e91\u4e3b\u673a
8 | website.host.serverVirtual=\u865a\u62df\u673a
9 | website.host.serverPhysics=\u7269\u7406\u673a
10 | website.host.applicationServer=\u5e94\u7528\u670d\u52a1\u5668
11 | website.host.proxyServer=\u4ee3\u7406\u670d\u52a1\u5668
12 | website.host.componentServer=\u7ec4\u4ef6\u670d\u52a1\u5668
13 | website.host.databaseServer=\u6570\u636e\u5e93\u670d\u52a1\u5668
14 | website.host.mailServer=\u90ae\u4ef6\u670d\u52a1\u5668
15 | website.host.msgServer=\u6d88\u606f\u670d\u52a1\u5668
16 | website.host.fileServer=\u6587\u4ef6\u670d\u52a1\u5668
17 | website.host.computServer=\u8ba1\u7b97\u8282\u70b9
18 | website.host.storeServer=\u5b58\u50a8\u8282\u70b9
19 | website.host.serverNetwork=\u670d\u52a1\u5668\u7f51\u7edc
20 | website.host.networkPersonal=\u865a\u62df\u4e13\u7f51(VPN)
21 | website.host.networkInternet=\u4e92\u8054\u7f51
22 | website.host.networkGoverment=\u653f\u52a1\u975e\u6d89\u5bc6\u7f51(\u5916\u7f51)
23 | website.host.networPrivate=\u653f\u52a1\u6d89\u5bc6\u7f51(\u5185\u7f51)
24 | website.host.serverLocation=\u670d\u52a1\u5668\u4f4d\u7f6e
25 | website.host.serverOrder=\u670d\u52a1\u5668\u5e8f\u53f7
26 | website.host.serverProvider=\u670d\u52a1\u5668\u5382\u5546
27 | website.host.serverRemark=\u670d\u52a1\u5668\u63cf\u8ff0
28 | website.host.serverType=\u670d\u52a1\u5668\u7c7b\u578b
29 | website.host.serverName=\u670d\u52a1\u5668\u540d\u79f0
30 | website.host.serverCpu=CPU\u5185\u6838\u6570
31 | website.host.serverCpuUnit=\u6838
32 | website.host.serverMem=\u670d\u52a1\u5668\u5185\u5b58
33 | website.host.serverNetgap=\u670d\u52a1\u5668\u5e26\u5bbd
34 | website.host.serverOs=\u670d\u52a1\u5668\u7cfb\u7edf
35 | website.host.serverAdd=\u65b0\u589e\u670d\u52a1\u5668
36 | website.host.serverEdit=\u7f16\u8f91\u670d\u52a1\u5668
37 | website.host.serverConfirmDel=\u60a8\u786e\u5b9a\u8981\u5220\u9664\u670d\u52a1\u5668
38 | website.bsnum.withoutHostBusiness=\u6ca1\u6709\u67e5\u8be2\u5230\u6570\u636e\u5e93\u670d\u52a1\u5668
39 | website.node.serverType=\u6570\u636e\u5e93\u7c7b\u578b
40 | website.node.serverPort=\u7aef\u53e3\u53f7
41 | website.node.serverTags=\u6807\u7b7e
42 | website.node.serverOrder=\u6392\u5e8f
43 | website.node.serverUserName=\u7528\u6237\u540d
44 | website.node.serverPassword=\u5bc6\u7801
45 | website.node.serverPassword2=\u91cd\u590d\u5bc6\u7801
46 | website.node.serverAdd=\u6dfb\u52a0\u6570\u636e\u5e93
47 | website.node.serverTest=\u6d4b\u8bd5
48 | website.node.serverConfirmDel=\u60a8\u786e\u5b9a\u8981\u5220\u9664\u6570\u636e\u5e93
49 | website.node.serverTestSuccess=\u8fde\u63a5\u6d4b\u8bd5\u6210\u529f
50 | website.node.master=\u4e3b\u673a
51 | website.node.connect=\u8fde\u63a5
52 | website.node.role=\u89d2\u8272
53 | website.node.runTime=\u8fd0\u884c\u65f6\u95f4
54 | website.node.version=\u7248\u672c
55 | website.node.threadRunning=\u6d3b\u52a8\u7ebf\u7a0b\u6570
56 | website.node.threadConnected=\u8fde\u63a5\u7ebf\u7a0b\u6570
57 | website.node.threadWaits=\u7b49\u5f85\u7ebf\u7a0b\u6570
58 | website.node.receivedPersond=\u63a5\u6536
59 | website.node.sentPersond=\u53d1\u9001
60 | website.node.queryPersond=\u6bcf\u79d2\u67e5\u8be2
61 | website.node.transactionPersond=\u6bcf\u79d2\u4e8b\u52a1
62 | website.node.checkReport=\u68c0\u67e5\u62a5\u544a
63 | website.node.nodeInitialize=\u6570\u636e\u5e93\u521d\u59cb\u5316
64 | website.node.hostInitialize=\u670d\u52a1\u5668\u521d\u59cb\u5316
65 | website.node.maxConnect=\u6700\u5927\u8fde\u63a5\u6570
66 | website.node.maxConnectError=\u6700\u5927\u8fde\u63a5\u9519\u8bef\u6570
67 | website.node.openFilesLimit=\u6700\u5927\u6253\u5f00\u6587\u4ef6\u6570
68 | website.node.openFiles=\u5df2\u6253\u5f00\u6587\u4ef6\u6570
69 | website.node.tableOpenCache=\u8868\u7f13\u5b58\u6570
70 | website.node.openTables=\u5df2\u6253\u5f00\u8868
71 | website.node.host=\u670d\u52a1\u5668
72 | website.node.basicInformation=\u57fa\u672c\u4fe1\u606f
73 | website.node.thread=\u7ebf\u7a0b
74 | website.node.network=\u7f51\u7edc
75 | website.node.healthInformation=\u6682\u65f6\u6ca1\u6709\u5065\u5eb7\u68c0\u67e5\u4fe1\u606f\u3002
76 | website.node.connectResource=\u8fde\u63a5\u6c60\u8d44\u6e90
77 | website.node.fileResource=\u6587\u4ef6\u8d44\u6e90
78 | website.node.tableResource=\u8868\u8d44\u6e90
79 | website.node.propertyInformation=\u6682\u65e0\u6027\u80fd\u76d1\u63a7\u4fe1\u606f\u3002
80 | website.node.Monitoring=\u76d1\u63a7
81 | website.node.SendEmail=\u53d1\u9001\u90ae\u4ef6
82 | website.node.SendMessage=\u53d1\u9001\u77ed\u4fe1
83 | website.node.SlowQuery=\u6162\u67e5\u8be2
84 | website.node.threadConnect=\u8fde\u63a5\u7ebf\u7a0b
85 | website.node.threadRun=\u6d3b\u52a8\u7ebf\u7a0b
86 | website.node.threadWait=\u7b49\u5f85\u7ebf\u7a0b
87 | website.node.MonitoringFrequency=\u76d1\u63a7\u9891\u7387
88 | website.node.Minutes=\u5206\u949f
89 | website.node.Seconds=\u79d2
90 | website.node.opened=\u5f00
91 | website.node.closed=\u5173
92 | website.node.switch=\u76d1\u63a7\u5f00\u5173
93 | website.node.alarmProject=\u544a\u8b66\u9879\u76ee
94 | website.warning.slowQueryAnalysis=\u6162\u67e5\u8be2\u5206\u6790
95 | website.warning.SQL=SQL
96 | website.warning.queryTime=\u67e5\u8be2\u65f6\u95f4
97 | website.warning.lockTime=\u9501\u7b49\u5f85\u65f6\u95f4
98 | website.warning.checksum=\u6821\u9a8c\u503c
99 | website.warning.fingerprint=\u62bd\u8c61\u8bed\u53e5
100 | website.warning.lastseen=\u6700\u8fd1\u65f6\u95f4
101 | website.warning.tscnt=\u6b21\u6570
102 | website.warning.sum=\u603b\u8ba1
103 | website.warning.min=\u6700\u5c0f
104 | website.warning.max=\u6700\u5927
105 | website.node.fresh=\u5237\u65b0
106 | website.node.success=\u6210\u529f
107 | website.node.failed=\u5931\u8d25
108 | website.node.hours=\u5c0f\u65f6
109 | website.node.time=\u6b21
110 | website.node.maxAlarmTimes=\u53d1\u9001\u544a\u8b66\u90ae\u4ef6\u6700\u5927\u6b21\u6570
111 | website.node.SleepTime=\u53d1\u9001\u544a\u8b66\u90ae\u4ef6\u4f11\u7720\u65f6\u95f4
112 | website.node.AlarmRecipient=\u544a\u8b66\u90ae\u4ef6\u6536\u4ef6\u4eba
113 | website.node.maxAlarmMessage=\u53d1\u9001\u544a\u8b66\u77ed\u4fe1\u6700\u5927\u6b21\u6570
114 | website.node.SleepTimeMessage=\u53d1\u9001\u544a\u8b66\u77ed\u4fe1\u4f11\u7720\u65f6\u95f4
115 | website.node.AlarmRecipientMessage=\u544a\u8b66\u77ed\u4fe1\u6536\u4ef6\u4eba
116 |
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/views/common/error.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Insert title here
6 |
7 |
8 |
9 |
10 |
11 |
欢迎访问农产品信息系统
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | ${exceptionMessage}
20 |
21 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/views/common/ftl/spring.ftl:
--------------------------------------------------------------------------------
1 | <#ftl strip_whitespace=true>
2 |
3 | <#--
4 | * message as m
5 | *
6 | * Macro to translate a message code into a message.
7 | -->
8 | <#macro m code>${springMacroRequestContext.getMessage(code)}#macro>
9 |
10 | <#--
11 | * messageText as mt
12 | *
13 | * Macro to translate a message code into a message,
14 | * using the given default text if no message found.
15 | -->
16 | <#macro mt code, text>${springMacroRequestContext.getMessage(code, text)}#macro>
17 |
18 | <#--
19 | * messageArgs as ma
20 | *
21 | * Macro to translate a message code with arguments into a message.
22 | -->
23 | <#macro ma code, args>${springMacroRequestContext.getMessage(code, args)}#macro>
24 |
25 | <#--
26 | * messageArgsText as mat
27 | *
28 | * Macro to translate a message code with arguments into a message,
29 | * using the given default text if no message found.
30 | -->
31 | <#macro mat code, args, text>${springMacroRequestContext.getMessage(code, args, text)}#macro>
32 |
33 | <#--
34 | * theme
35 | *
36 | * Macro to translate a theme message code into a message.
37 | -->
38 | <#macro theme code>${springMacroRequestContext.getThemeMessage(code)}#macro>
39 |
40 | <#--
41 | * themeText
42 | *
43 | * Macro to translate a theme message code into a message,
44 | * using the given default text if no message found.
45 | -->
46 | <#macro themeText code, text>${springMacroRequestContext.getThemeMessage(code, text)}#macro>
47 |
48 | <#--
49 | * themeArgs
50 | *
51 | * Macro to translate a theme message code with arguments into a message.
52 | -->
53 | <#macro themeArgs code, args>${springMacroRequestContext.getThemeMessage(code, args)}#macro>
54 |
55 | <#--
56 | * themeArgsText
57 | *
58 | * Macro to translate a theme message code with arguments into a message,
59 | * using the given default text if no message found.
60 | -->
61 | <#macro themeArgsText code, args, text>${springMacroRequestContext.getThemeMessage(code, args, text)}#macro>
62 |
63 | <#--
64 | * url
65 | *
66 | * Takes a relative URL and makes it absolute from the server root by
67 | * adding the context root for the web application.
68 | -->
69 | <#macro url relativeUrl>${springMacroRequestContext.getContextPath()}${relativeUrl}#macro>
70 |
71 | <#--
72 | * bind
73 | *
74 | * Exposes a BindStatus object for the given bind path, which can be
75 | * a bean (e.g. "person") to get global errors, or a bean property
76 | * (e.g. "person.name") to get field errors. Can be called multiple times
77 | * within a form to bind to multiple command objects and/or field names.
78 | *
79 | * This macro will participate in the default HTML escape setting for the given
80 | * RequestContext. This can be customized by calling "setDefaultHtmlEscape"
81 | * on the "springMacroRequestContext" context variable, or via the
82 | * "defaultHtmlEscape" context-param in web.xml (same as for the JSP bind tag).
83 | * Also regards a "htmlEscape" variable in the namespace of this library.
84 | *
85 | * Producing no output, the following context variable will be available
86 | * each time this macro is referenced (assuming you import this library in
87 | * your templates with the namespace 'spring'):
88 | *
89 | * spring.status : a BindStatus instance holding the command object name,
90 | * expression, value, and error messages and codes for the path supplied
91 | *
92 | * @param path : the path (string value) of the value required to bind to.
93 | * Spring defaults to a command name of "command" but this can be overridden
94 | * by user config.
95 | -->
96 | <#macro bind path>
97 | <#if htmlEscape?exists>
98 | <#assign status = springMacroRequestContext.getBindStatus(path, htmlEscape)>
99 | <#else>
100 | <#assign status = springMacroRequestContext.getBindStatus(path)>
101 | #if>
102 | <#-- assign a temporary value, forcing a string representation for any
103 | kind of variable. This temp value is only used in this macro lib -->
104 | <#if status.value?exists && status.value?is_boolean>
105 | <#assign stringStatusValue=status.value?string>
106 | <#else>
107 | <#assign stringStatusValue=status.value?default("")>
108 | #if>
109 | #macro>
110 |
111 | <#--
112 | * bindEscaped
113 | *
114 | * Similar to spring:bind, but takes an explicit HTML escape flag rather
115 | * than relying on the default HTML escape setting.
116 | -->
117 | <#macro bindEscaped path, htmlEscape>
118 | <#assign status = springMacroRequestContext.getBindStatus(path, htmlEscape)>
119 | <#-- assign a temporary value, forcing a string representation for any
120 | kind of variable. This temp value is only used in this macro lib -->
121 | <#if status.value?exists && status.value?is_boolean>
122 | <#assign stringStatusValue=status.value?string>
123 | <#else>
124 | <#assign stringStatusValue=status.value?default("")>
125 | #if>
126 | #macro>
127 |
128 | <#--
129 | * formInput
130 | *
131 | * Display a form input field of type 'text' and bind it to an attribute
132 | * of a command or bean.
133 | *
134 | * @param path the name of the field to bind to
135 | * @param attributes any additional attributes for the element (such as class
136 | * or CSS styles or size
137 | -->
138 | <#macro formInput path attributes="" fieldType="text">
139 | <@bind path/>
140 | ${stringStatusValue}#if>" ${attributes}<@closeTag/>
141 | #macro>
142 |
143 | <#--
144 | * formPasswordInput
145 | *
146 | * Display a form input field of type 'password' and bind it to an attribute
147 | * of a command or bean. No value will ever be displayed. This functionality
148 | * can also be obtained by calling the formInput macro with a 'type' parameter
149 | * of 'password'.
150 | *
151 | * @param path the name of the field to bind to
152 | * @param attributes any additional attributes for the element (such as class
153 | * or CSS styles or size
154 | -->
155 | <#macro formPasswordInput path attributes="">
156 | <@formInput path, attributes, "password"/>
157 | #macro>
158 |
159 | <#--
160 | * formHiddenInput
161 | *
162 | * Generate a form input field of type 'hidden' and bind it to an attribute
163 | * of a command or bean. This functionality can also be obtained by calling
164 | * the formInput macro with a 'type' parameter of 'hidden'.
165 | *
166 | * @param path the name of the field to bind to
167 | * @param attributes any additional attributes for the element (such as class
168 | * or CSS styles or size
169 | -->
170 | <#macro formHiddenInput path attributes="">
171 | <@formInput path, attributes, "hidden"/>
172 | #macro>
173 |
174 | <#--
175 | * formTextarea
176 | *
177 | * Display a text area and bind it to an attribute of a command or bean.
178 | *
179 | * @param path the name of the field to bind to
180 | * @param attributes any additional attributes for the element (such as class
181 | * or CSS styles or size
182 | -->
183 | <#macro formTextarea path attributes="">
184 | <@bind path/>
185 |
186 | #macro>
187 |
188 | <#--
189 | * formSingleSelect
190 | *
191 | * Show a selectbox (dropdown) input element allowing a single value to be chosen
192 | * from a list of options.
193 | *
194 | * @param path the name of the field to bind to
195 | * @param options a map (value=label) of all the available options
196 | * @param attributes any additional attributes for the element (such as class
197 | * or CSS styles or size
198 | -->
199 | <#macro formSingleSelect path options attributes="">
200 | <@bind path/>
201 |
212 | #macro>
213 |
214 | <#--
215 | * formMultiSelect
216 | *
217 | * Show a listbox of options allowing the user to make 0 or more choices from
218 | * the list of options.
219 | *
220 | * @param path the name of the field to bind to
221 | * @param options a map (value=label) of all the available options
222 | * @param attributes any additional attributes for the element (such as class
223 | * or CSS styles or size
224 | -->
225 | <#macro formMultiSelect path options attributes="">
226 | <@bind path/>
227 |
233 | #macro>
234 |
235 | <#--
236 | * formRadioButtons
237 | *
238 | * Show radio buttons.
239 | *
240 | * @param path the name of the field to bind to
241 | * @param options a map (value=label) of all the available options
242 | * @param separator the html tag or other character list that should be used to
243 | * separate each option. Typically ' ' or ' '
244 | * @param attributes any additional attributes for the element (such as class
245 | * or CSS styles or size
246 | -->
247 | <#macro formRadioButtons path options separator attributes="">
248 | <@bind path/>
249 | <#list options?keys as value>
250 | <#assign id="${status.expression}${value_index}">
251 | checked="checked"#if> ${attributes}<@closeTag/>
252 | ${separator}
253 | #list>
254 | #macro>
255 |
256 | <#--
257 | * formCheckboxes
258 | *
259 | * Show checkboxes.
260 | *
261 | * @param path the name of the field to bind to
262 | * @param options a map (value=label) of all the available options
263 | * @param separator the html tag or other character list that should be used to
264 | * separate each option. Typically ' ' or ' '
265 | * @param attributes any additional attributes for the element (such as class
266 | * or CSS styles or size
267 | -->
268 | <#macro formCheckboxes path options separator attributes="">
269 | <@bind path/>
270 | <#list options?keys as value>
271 | <#assign id="${status.expression}${value_index}">
272 | <#assign isSelected = contains(status.value?default([""]), value)>
273 | checked="checked"#if> ${attributes}<@closeTag/>
274 | ${separator}
275 | #list>
276 |
277 | #macro>
278 |
279 | <#--
280 | * showErrors
281 | *
282 | * Show validation errors for the currently bound field, with
283 | * optional style attributes.
284 | *
285 | * @param separator the html tag or other character list that should be used to
286 | * separate each option. Typically ' '.
287 | * @param classOrStyle either the name of a CSS class element (which is defined in
288 | * the template or an external CSS file) or an inline style. If the value passed in here
289 | * contains a colon (:) then a 'style=' attribute will be used, else a 'class=' attribute
290 | * will be used.
291 | -->
292 | <#macro showErrors separator classOrStyle="">
293 | <#list status.errorMessages as error>
294 | <#if classOrStyle == "">
295 | ${error}
296 | <#else>
297 | <#if classOrStyle?index_of(":") == -1><#assign attr="class"><#else><#assign attr="style">#if>
298 | ${error}
299 | #if>
300 | <#if error_has_next>${separator}#if>
301 | #list>
302 | #macro>
303 |
304 | <#--
305 | * checkSelected
306 | *
307 | * Check a value in a list to see if it is the currently selected value.
308 | * If so, add the 'selected="selected"' text to the output.
309 | * Handles values of numeric and string types.
310 | * This function is used internally but can be accessed by user code if required.
311 | *
312 | * @param value the current value in a list iteration
313 | -->
314 | <#macro checkSelected value>
315 | <#if stringStatusValue?is_number && stringStatusValue == value?number>selected="selected"#if>
316 | <#if stringStatusValue?is_string && stringStatusValue == value>selected="selected"#if>
317 | #macro>
318 |
319 | <#--
320 | * contains
321 | *
322 | * Macro to return true if the list contains the scalar, false if not.
323 | * Surprisingly not a FreeMarker builtin.
324 | * This function is used internally but can be accessed by user code if required.
325 | *
326 | * @param list the list to search for the item
327 | * @param item the item to search for in the list
328 | * @return true if item is found in the list, false otherwise
329 | -->
330 | <#function contains list item>
331 | <#list list as nextInList>
332 | <#if nextInList == item><#return true>#if>
333 | #list>
334 | <#return false>
335 | #function>
336 |
337 | <#--
338 | * closeTag
339 | *
340 | * Simple macro to close an HTML tag that has no body with '>' or '/>',
341 | * depending on the value of a 'xhtmlCompliant' variable in the namespace
342 | * of this library.
343 | -->
344 | <#macro closeTag>
345 | <#if xhtmlCompliant?exists && xhtmlCompliant>/><#else>>#if>
346 | #macro>
347 |
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/views/common/ftl/web.ftl:
--------------------------------------------------------------------------------
1 | <#ftl strip_whitespace=true>
2 |
--------------------------------------------------------------------------------
/WebRoot/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Binrui.Shopping
4 |
5 |
6 | webAppRootKey
7 | shopping.root
8 |
9 |
10 |
11 | contextConfigLocation
12 | classpath:application-context.xml,classpath*:spring/*Context.xml
13 |
14 |
15 |
16 | log4jConfigLocation
17 | classpath:log4j.properties
18 |
19 |
20 |
21 | log4jRefreshInterval
22 | 6000
23 |
24 |
25 |
26 | org.springframework.web.util.Log4jConfigListener
27 |
28 |
29 |
30 | org.springframework.web.util.IntrospectorCleanupListener
31 |
32 |
33 |
34 | org.springframework.web.context.ContextLoaderListener
35 |
36 |
37 |
38 | org.springframework.web.context.request.RequestContextListener
39 |
40 |
41 |
42 | 120
43 |
44 |
45 |
46 | index.html
47 | index.htm
48 | index.jsp
49 | default.html
50 | default.htm
51 | default.jsp
52 |
53 |
--------------------------------------------------------------------------------
/WebRoot/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Insert title here
6 |
7 |
8 |