Maven+SSH整合记录

editor.clear()清除数据

https://blog.csdn.net/chengxu_hou/article/details/71747608

int id = (int) session.save(userEntity);的返回值一直是0

 @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "mid")
    public int getMid() {
        return mid;
    }

或者

  <id name="id" column="id">
            <generator class="native"></generator>
        </id>

乐观锁的问题 Row was updated or deleted by another transaction 异常的处理

在这里插入图片描述

session.save等类似的操作之后不要设置对象。

struts.xml文件中的method

  1. 如果不写method=xxx,他会直接返回result,不执行方法。所以要加上
  2. 如果一个action有多个方法,需要使用通配符的话,就需要使用
            <allowed-methods>
                login
            </allowed-methods>

java.lang.IllegalArgumentException: org.hibernate.QueryException: Legacy-style query parameters (?) are no longer supported;

use JPA-style ordinal parameters (e.g., `?1`) instead : from com.rensiyu.book.entity.UserEntity as u where u.userName= ? and u.userPasswd=? [from com.rensiyu.book.entity.UserEntity as u where u.userName= ? and u.userPasswd=?]
	at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138)
	at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
	at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
	at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:713)
	at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:23)
	at com.rensiyu.book.dao.UserDaoImpl.login(UserDaoImpl.java:30)
	at com.rensiyu.book.service.UserServiceImpl.login(UserServiceImpl.java:25)
	at com.rensiyu.book.service.UserServiceImpl$$FastClassBySpringCGLIB$$128767da.invoke(<generated>)

可以参考 https://www.cnblogs.com/King-boy/p/11545508.html

The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone.

在这里插入图片描述

加上事务aop后项目启动报错 BeanPostProcessor before instantiation of bean failed

在项目中加上基于xml的aop后,项目无法启动,错误信息如下:

Error creating bean with name ‘customerService’ defined in class path resource [bean.xml]: BeanPostProcessor before instantiation of bean failed;
原因是少了一个jar包:aspectj.weaver.jar

<!-- https://mvnrepository.com/artifact/aspectj/aspectjweaver -->
<dependency>
    <groupId>aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.5.3</version>
</dependency>

结构目录

在这里插入图片描述

pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.rensiyu.secondbook</groupId>
    <artifactId>ssh_book</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>ssh_book Maven Webapp</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spring.version>5.1.3.RELEASE</spring.version><!-- Spring 版本 -->
        <struts2.version>2.5.18</struts2.version><!-- Struts2 版本 -->
        <hibernate.version>5.4.0.Final</hibernate.version><!-- Hibernate 版本 -->
    </properties>


    <dependencies>
        <!-- junit 单元测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <!-- MySQL 连接驱动  -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.13</version>
        </dependency>

        <!-- 添加对 JDBC 连接池的支持 -->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>

        <!-- Spring -->
        <dependency><!-- 提供控制反转(IoC)容器 -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency><!-- 提供对 Spring 中对象的框架式访问方式 -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency><!-- Bean 管理 -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency><!-- Spring 表达式语言 -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency><!-- 集成常用 ORM 框架的封装包 -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency><!-- 集成 JDBC 的封装包 -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency><!-- 事务管理 -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency><!-- 提供了 Web 开发以及集成 Web 框架的封装包 -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency><!-- Spring 面向切面编程 -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- Struts2 -->
        <dependency><!-- 核心 -->
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>${struts2.version}</version>
        </dependency>
        <dependency><!-- 核心 -->
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-json-plugin</artifactId>
            <version>${struts2.version}</version>
        </dependency>
        <dependency><!-- 集成 junit 单元测试 -->
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-junit-plugin</artifactId>
            <version>${struts2.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency><!-- 集成 Struts2 和 Spring -->
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-spring-plugin</artifactId>
            <version>${struts2.version}</version>
        </dependency>

        <!-- Servlet API -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>


        <!-- Hibernate -->
        <dependency><!-- 核心 -->
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
    </dependencies>


    <build>
        <finalName>ssh_book</finalName>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

applicationContext.xml 配置文件的存放位置

web.xml中classpath:和classpath*:  有什么区别? 
 
classpath:只会到你的class路径中查找找文件; 
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.
 
 
 
存放位置:
1:src下面
需要在web.xml中定义如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
 
2:WEB-INF下面
需要在web.xml中定义如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/applicationContext*.xml</param-value>
</context-param>
 
web.xml 通过contextConfigLocation配置spring 的方式 
SSI框架配置文件路径问题: 
 
struts2的 1个+N个 路径:src+src(可配置) 名称: struts.xml + N 
spring 的 1个 路径: src 名称: applicationContext.xml
ibatis 的 1个+N个 路径: src+src(可配置) 名称: SqlMapConfig.xml + N 
 
 
部署到tomcat后,src目录下的配置文件会和class文件一样,自动copy到应用的 classes目录下 
 
spring的 配置文件在启动时,加载的是web-info目录下的applicationContext.xml, 
运行时使用的是web-info/classes目录下的applicationContext.xml。 
 
配置web.xml使这2个路径一致: 
 
 
<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value>/WEB-INF/classes/applicationContext.xml</param-value> 
</context-param> 
 
多个配置文件的加载 
<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value> 
classpath*:conf/spring/applicationContext_core*.xml, 
classpath*:conf/spring/applicationContext_dict*.xml, 
classpath*:conf/spring/applicationContext_hibernate.xml, 
classpath*:conf/spring/applicationContext_staff*.xml, 
classpath*:conf/spring/applicationContext_security.xml 
classpath*:conf/spring/applicationContext_modules*.xml 
classpath*:conf/spring/applicationContext_cti*.xml 
classpath*:conf/spring/applicationContext_apm*.xml 
</param-value> 
</context-param> 
 
contextConfigLocation 参数定义了要装入的 Spring 配置文件。 
 
首先与Spring相关的配置文件必须要以"applicationContext-"开头,要符合约定优于配置的思想,这样在效率上和出错率上都要好很多。 
还有最好把所有Spring配置文件都放在一个统一的目录下,如果项目大了还可以在该目录下分模块建目录。这样程序看起来不会很乱。 
在web.xml中的配置如下: 
Xml代码 
<context-param> 
< param-name>contextConfigLocation</param-name> 
< param-value>classpath*:**/applicationContext-*.xml</param-value> 
</context-param> 
 
"**/"表示的是任意目录; 
"**/applicationContext-*.xml"表示任意目录下的以"applicationContext-"开头的XML文件。 
你自己可以根据需要修改。最好把所有Spring配置文件都放在一个统一的目录下,如: 
 
<!-- Spring 的配置 --> 
<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value>classpath:/spring/applicationContext-*.xml</param-value> 
</context-param> 

运行成功

D:\Tools\apache-tomcat-9.0.24\bin\catalina.bat run
[2019-12-15 03:41:34,778] Artifact ssh_book:war exploded: Waiting for server connection to start artifact deployment...
Using CATALINA_BASE:   "C:\Users\76147\.IntelliJIdea2019.1\system\tomcat\Unnamed_ssh_book"
Using CATALINA_HOME:   "D:\Tools\apache-tomcat-9.0.24"
Using CATALINA_TMPDIR: "D:\Tools\apache-tomcat-9.0.24\temp"
Using JRE_HOME:        "D:\Java\jdk1.8.0_211"
Using CLASSPATH:       "D:\Tools\apache-tomcat-9.0.24\bin\bootstrap.jar;D:\Tools\apache-tomcat-9.0.24\bin\tomcat-juli.jar"
15-Dec-2019 15:41:35.986 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本:        Apache Tomcat/9.0.24
15-Dec-2019 15:41:35.988 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.构建:          Aug 14 2019 21:16:42 UTC
15-Dec-2019 15:41:35.988 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.24.0
15-Dec-2019 15:41:35.988 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Windows 10
15-Dec-2019 15:41:35.989 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本:            10.0
15-Dec-2019 15:41:35.989 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 结.造:          amd64
15-Dec-2019 15:41:35.989 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量:             D:\Java\jdk1.8.0_211\jre
15-Dec-2019 15:41:35.989 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本:           1.8.0_211-b12
15-Dec-2019 15:41:35.989 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商:            Oracle Corporation
15-Dec-2019 15:41:35.989 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         C:\Users\76147\.IntelliJIdea2019.1\system\tomcat\Unnamed_ssh_book
15-Dec-2019 15:41:35.989 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         D:\Tools\apache-tomcat-9.0.24
15-Dec-2019 15:41:35.989 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\76147\.IntelliJIdea2019.1\system\tomcat\Unnamed_ssh_book\conf\logging.properties
15-Dec-2019 15:41:35.989 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
15-Dec-2019 15:41:35.989 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
15-Dec-2019 15:41:35.989 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
15-Dec-2019 15:41:35.990 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
15-Dec-2019 15:41:35.990 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.password.file=C:\Users\76147\.IntelliJIdea2019.1\system\tomcat\Unnamed_ssh_book\jmxremote.password
15-Dec-2019 15:41:35.990 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.access.file=C:\Users\76147\.IntelliJIdea2019.1\system\tomcat\Unnamed_ssh_book\jmxremote.access
15-Dec-2019 15:41:35.990 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
15-Dec-2019 15:41:35.990 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
15-Dec-2019 15:41:35.991 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
15-Dec-2019 15:41:35.991 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
15-Dec-2019 15:41:35.991 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\76147\.IntelliJIdea2019.1\system\tomcat\Unnamed_ssh_book
15-Dec-2019 15:41:35.991 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=D:\Tools\apache-tomcat-9.0.24
15-Dec-2019 15:41:35.991 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=D:\Tools\apache-tomcat-9.0.24\temp
15-Dec-2019 15:41:35.991 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.23] using APR version [1.7.0].
15-Dec-2019 15:41:35.992 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
15-Dec-2019 15:41:35.992 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
15-Dec-2019 15:41:35.996 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1c  28 May 2019]
15-Dec-2019 15:41:36.175 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
15-Dec-2019 15:41:36.195 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["ajp-nio-8009"]
15-Dec-2019 15:41:36.197 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[431]毫秒内初始化
15-Dec-2019 15:41:36.220 信息 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
15-Dec-2019 15:41:36.220 信息 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.24]
15-Dec-2019 15:41:36.230 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
15-Dec-2019 15:41:36.239 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["ajp-nio-8009"]
15-Dec-2019 15:41:36.241 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in [44] milliseconds
[2019-12-15 03:41:36,439] Artifact ssh_book:war exploded: Artifact is being deployed, please wait...
Connected to server
15-Dec-2019 15:41:38.973 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
15-Dec-2019 15:41:39.625 信息 [MLog-Init-Reporter] com.mchange.v2.log.MLog. MLog clients using java 1.4+ standard logging.
15-Dec-2019 15:41:39.669 信息 [RMI TCP Connection(3)-127.0.0.1] com.mchange.v2.c3p0.C3P0Registry. Initializing c3p0-0.9.5.2 [built 08-December-2015 22:06:04 -0800; debug? true; trace: 10]
15-Dec-2019 15:41:41.157 信息 [RMI TCP Connection(3)-127.0.0.1] com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource. Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> 1hgf476a72cyll41u3pr89|5808eeca, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, extensions -> {}, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceSynchronousCheckins -> false, forceUseNamedDriverClass -> false, identityToken -> 1hgf476a72cyll41u3pr89|5808eeca, idleConnectionTestPeriod -> 0, initialPoolSize -> 3, jdbcUrl -> jdbc:mysql:///second_hand_book?serverTimezone=Asia/Shanghai, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 10, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 5, numHelperThreads -> 3, preferredTestQuery -> null, privilegeSpawnedThreads -> false, properties -> {user=******, password=******}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, userOverrides -> {}, usesTraditionalReflectiveProxies -> false ]
15-Dec-2019 15:41:41.172 警告 [RMI TCP Connection(3)-127.0.0.1] com.mchange.v2.resourcepool.BasicResourcePool. Bad pool size config, start 3 < min 5. Using 5 as start.
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
[2019-12-15 03:41:43,482] Artifact ssh_book:war exploded: Artifact is deployed successfully
[2019-12-15 03:41:43,482] Artifact ssh_book:war exploded: Deploy took 7,043 milliseconds
15-Dec-2019 15:41:46.253 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\Tools\apache-tomcat-9.0.24\webapps\manager]
15-Dec-2019 15:41:46.431 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [D:\Tools\apache-tomcat-9.0.24\webapps\manager] has finished in [178] ms

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值