深圳商城手机网站建设wordpress for sae 插件

web/2025/9/29 13:32:36/文章来源:
深圳商城手机网站建设,wordpress for sae 插件,cms开发,wordpress缩略图外链本篇讲的内容主要是基于Spring v2.5的注解来完成bean的定义 之前都是使用纯配置的方式来定义的bean 文章目录 前言1. Spring v2.5 注解开发定义bean第一步#xff1a;在需要定义的类上写上注解Component第二步#xff1a;在Spring Config中定义扫描包第三步#xff1a;主方法…本篇讲的内容主要是基于Spring v2.5的注解来完成bean的定义 之前都是使用纯配置的方式来定义的bean 文章目录 前言1. Spring v2.5 注解开发定义bean第一步在需要定义的类上写上注解Component第二步在Spring Config中定义扫描包第三步主方法中测试基于Component的衍生注解 2. Spring v3.0 纯注解开发第一步创建配置类第二步导入配置类 3. Bean的作用范围(单例/多例)与生命周期Bean的作用范围Bean的生命周期 4.依赖注入引用类型注入Autowire属性默认按类型注入按类型注入反射结果不唯一按名注入按名注入的标准写法少用 简单类型注入引入外部的properties文件 5. 第三方Bean管理依赖注入简单类型注入引用类型注入 6. XML配置比对注解配置 前言 XML配置解耦而注解是简化开发 1. Spring v2.5 注解开发定义bean 之前都是使用纯配置的方式在Spring Config中通过bean idxxx classxxx /来定义的bean从此处开始将根据注解开发定义bean 第一步在需要定义的类上写上注解Component 这里有两种写的形式 Component 或者是给其定义名称 Component(bookDao) 通过第一种形式就通过在getBean()方法中写类型来获得bean 通过第二种形式就通过在getBean()方法中写名称来获得bean package com.example.demo.dao.impl;import com.example.demo.dao.BookDao; import org.springframework.stereotype.Component;Component // Component(bookDao) public class BookDaoImpl implements BookDao {Overridepublic void save() {System.out.println(Book Dao Save...);} }第二步在Spring Config中定义扫描包 注意这里也要开启命名空间 然后通过context:component-scan base-package.... /进行定义扫描的包这里就是扫描com.example.demo.dao下边的包修改这个包为com.example.demo也是可以的 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/contextxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdcontext:component-scan base-packagecom.example.demo.dao //beans第三步主方法中测试 package com.example.demo;import com.example.demo.dao.BookDao; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class DemoApplication {public static void main(String[] args) {ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext.xml);// 第一种定义形式写法定义Component写BookDao bookDao ctx.getBean(BookDao.class);System.out.println(bookDao);// 第二种定义形式写法定义Component(bookDao)写BookDao bookDao1 (BookDao) ctx.getBean(bookDao);System.out.println(bookDao1);} }结果均为 com.example.demo.dao.impl.BookDaoImpl3a52dba3基于Component的衍生注解 Controller表现层定义bean Service业务层定义bean Repository数据层定义bean 比如在BookServiceImpl类上就使用Service进行定义在BookDaoImpl类上就使用Repository进行定义加括号的规则Component类似调用的方式也和原本的类似 2. Spring v3.0 纯注解开发 既然是纯注解开发就需要删除之前冗余的这个配置文件纯注解开发将配置的xml文件转换为了一个配置类 第一步创建配置类 配置类写法为实际上就是用两个注解来替代了原本配置文件中的内容 package com.example.demo.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;Configuration ComponentScan(com.example.demo) public class SpringConfig { }配置文件中的内容分别被配置类中的内容替代如下 假如想扫描多个包使用{}来写即可如ComponentScan({com.example.demo.dao, com.example.demo.service}) 第二步导入配置类 将原本的加载配置文件的ClassPathXmlApplicationContext换成了加载配置类AnnotationConfigApplicationContext里面的参数是注解类名称.class即读取这个注解类剩下getBean的操作和原来一样。 package com.example.demo;import com.example.demo.config.SpringConfig; import com.example.demo.dao.BookDao; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class DemoApplication {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig.class);BookDao bookDao ctx.getBean(BookDao.class);System.out.println(bookDao);} }3. Bean的作用范围(单例/多例)与生命周期 Bean的作用范围 之前配置Bean的作用范围是在配置文件里通过指定scope属性定义的 scopesingleton/prototype bean idbookDao namedao classcom.example.demo231116.dao.impl.BookDaoImpl scopeprototype /因为Bean默认是单例模式如果我们想要修改成多例模式就在类上加Scope注解括号的内容写prototype为多例singleton为单例 package com.example.demo.dao.impl;import com.example.demo.dao.BookDao; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component;Repository Scope(prototype) public class BookDaoImpl implements BookDao {Overridepublic void save() {System.out.println(Book Dao Save...);} }Bean的生命周期 之前提到Bean的生命周期其实就是我们可以定义在Bean加载的时候初始化一些资源在销毁前销毁一些资源在配置文件中写初始化和销毁是通过init-method和destroy-method实现的 bean idbookDaoCycle classcom.example.demo231116.dao.impl.BookDaoImpl init-methodinit destroy-methoddestroy /在注解开发中我们只需要在类中写好初始化和销毁方法并分别加上PostConstruct注解后执行init方法和PreDestroy销毁前执行destroy方法两个注解注意初始化和销毁方法的方法名是任意的 package com.example.demo.dao.impl;import com.example.demo.dao.BookDao; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component;import javax.annotation.PostConstruct; import javax.annotation.PreDestroy;Repository //Scope(prototype) public class BookDaoImpl implements BookDao {Overridepublic void save() {System.out.println(Book Dao Save...);}PostConstructpublic void init(){System.out.println(init...);}PreDestroypublic void destroy(){System.out.println(destroy);}}注意如果提示没找到注解的话需要在pom.xml中导入坐标 dependencygroupIdjavax.annotation/groupIdartifactIdjavax.annotation-api/artifactIdversion1.2/version /dependency然后再执行主方法 package com.example.demo;import com.example.demo.config.SpringConfig; import com.example.demo.dao.BookDao; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class DemoApplication {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig.class);BookDao bookDao ctx.getBean(BookDao.class);System.out.println(bookDao);} }执行的结果为 init... com.example.demo.dao.impl.BookDaoImpl7eac9008没有调用Destroy方法的原因是没有关闭IoC容器/注册关闭钩子只需要像之前一样在程序结束前使用ctx.close()或通过ctx.registerShutdownHook()来注册关闭钩子 该方法注意不能使用ApplicationContext类因为没有close()方法和registerShutdownHook()方法 package com.example.demo;import com.example.demo.config.SpringConfig; import com.example.demo.dao.BookDao; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class DemoApplication {public static void main(String[] args) {AnnotationConfigApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig.class); // 方法二ctx.registerShutdownHook();BookDao bookDao ctx.getBean(BookDao.class);System.out.println(bookDao);// 方法一ctx.close();} }注意非单例模式不会执行destroy因为多例模式下Spring不负责销毁。Spring默认是单例的它只管单例的销毁而不管多例的销毁 4.依赖注入 引用类型注入 依赖注入使用自动装配的方式这里阉割掉了配置文件中的Setter注入、构造注入等等一系列冗杂的方法使用自动装配。 Autowire属性默认按类型注入 这里注入很简单只需要在属性上加上Autowire注解就能够实现自动装配这里的自动装配是基于暴力反射实现的也无需再BookDaoImpl中实现set方法 package com.example.demo.service.impl;import com.example.demo.dao.BookDao; import com.example.demo.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class BookServiceImpl implements BookService {AutowiredBookDao bookDao;Overridepublic void save() {System.out.println(Book Service Save...);bookDao.save();} }假如我有两个类实现了BookDao.java这个类BookDaoImpl和BookDaoImpl2这时候再执行自动装配会报错因为基于类型反射得到的类不唯一 按类型注入反射结果不唯一按名注入 针对这种不唯一的情况给两个类的Repository注解后加名字BookDaoImpl和BookDaoImpl2分别为Repository(bookDao)和Repository(bookDao2) package com.example.demo.dao.impl;import com.example.demo.dao.BookDao; import org.springframework.stereotype.Repository;Repository(bookDao) public class BookDaoImpl implements BookDao {Overridepublic void save() {System.out.println(Book Dao Save...);} }package com.example.demo.dao.impl;import com.example.demo.dao.BookDao; import org.springframework.stereotype.Repository;Repository(bookDao2) public class BookDaoImpl2 implements BookDao {Overridepublic void save() {System.out.println(Book Dao Save...2);} }此时假如我们在Service中的属性定义是 Autowired BookDao bookDao2;则会注入对应BookDaoImpl2这个类如果写的是bookDao1则会注入对应BookDaoImpl这个类 以上其实就是说明Spring注解开发中如果按类型注入不成功就会按名注入这些都是自动的无需人为配置按类型注入/按名注入 按名注入的标准写法少用 事实上按名注入更标准的方法是使用Qualifier注解这种注解还是要基于给BookDaoImpl和BookDaoImpl2都在Repository后指定了名称的情况下进行的标准写法如下 package com.example.demo.service.impl;import com.example.demo.dao.BookDao; import com.example.demo.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service;Service public class BookServiceImpl implements BookService {AutowiredQualifier(bookDao2)BookDao bookDao;Overridepublic void save() {System.out.println(Book Service Save...);bookDao.save();} }Qualifier后指定你想让bookDao属性被哪个类注入注意该注解必须搭配Autowired注解使用 简单类型注入 使用Value属性完成注入括号内写值 package com.example.demo.dao.impl;import com.example.demo.dao.BookDao; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Repository;Repository public class BookDaoImpl implements BookDao {Value(namenamename!!!)String name;Overridepublic void save() {System.out.println(Book Dao Save... this.name);} }就这样的方法可能会有疑问这样写和String name namenamename!!!的区别是什么 不一样的地方在于你注解里面的这个字符串可能来自于外部比如来自于外部的properties文件 引入外部的properties文件 假如在Resource下有jdbc.properties文件有内容 namenamenamename!!!那么我们需要在配置类中加载这个文件加上注解PropertySource括号内是文件名 package com.example.demo.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource;Configuration ComponentScan(com.example.demo) PropertySource(jdbc.properties) public class SpringConfig { }然后在值名称上写使用${}引用即可 package com.example.demo.dao.impl;import com.example.demo.dao.BookDao; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Repository;Repository public class BookDaoImpl implements BookDao {Value(${name})String name;Overridepublic void save() {System.out.println(Book Dao Save... this.name);} }假如想加载多个配置文件使用{}来写即可类似于ComponentScan 但是注意之前在配置文件里加载的时候支持使用通配符*但这里完全不支持使用通配符 但是加上PropertySource(classpath:jdbc.properties)是可以的只是不能使用通配符 5. 第三方Bean 此处以数据库连接为例需要在pom.xml中导入坐标 dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.16/version /dependency管理 在配置类中写一个方法一般方法名为Bean的ID。然后new一个第三方对象并返回。 在该方法上加上Bean注解表明该方法返回的是一个Bean package com.example.demo.config;import com.alibaba.druid.pool.DruidDataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;Configuration ComponentScan(com.example.demo) public class SpringConfig {Beanpublic DataSource dataSource(){DruidDataSource ds new DruidDataSource();ds.setDriverClassName(com.mysql.jdbc.Driver);ds.setUrl(jdbc:mysql://localhost:3306/mysql);ds.setUsername(root);ds.setPassword(123456);return ds;} }这样写就可以在主方法里像平常一样获得Bean DataSource dataSource ctx.getBean(DataSource.class); System.out.println(dataSource);但是将第三方的配置写在Spring的配置类中可能比较乱所以我们给它新建一个文件JdbcConfig.java package com.example.demo.config;import com.alibaba.druid.pool.DruidDataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;Configuration public class JdbcConfig {Beanpublic DataSource dataSource(){DruidDataSource ds new DruidDataSource();ds.setDriverClassName(com.mysql.jdbc.Driver);ds.setUrl(jdbc:mysql://localhost:3306/mysql);ds.setUsername(root);ds.setPassword(123456);return ds;} }想要让这个文件被扫描到 第一种方法是在这个配置文件上加上注解Configuration然后在配置类中用ComponentScan()扫描这个包 ComponentScan(com.example.config) 第二种方法推荐使用无需在文件上加注解Configuration而是直接在配置类中加上Import注解并在括号内写这个新的配置文件名.classImport(JdbcConfig.class) 完整代码如下 package com.example.demo.config;import com.alibaba.druid.pool.DruidDataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import;import javax.sql.DataSource;Configuration //ComponentScan(com.example.demo.config) Import(JdbcConfig.class) public class SpringConfig {Beanpublic DataSource dataSource(){DruidDataSource ds new DruidDataSource();ds.setDriverClassName(com.mysql.jdbc.Driver);ds.setUrl(jdbc:mysql://localhost:3306/mysql);ds.setUsername(root);ds.setPassword(123456);return ds;} }多个数据也使用数组模式 依赖注入 简单类型注入 只需要在类里面定义简单类型的成员变量并在方法中使用成员变量即可同样通过Value()注解赋值 package com.example.demo.config;import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;Configuration public class JdbcConfig {Value(com.mysql.jdbc.Driver)String driverClassName;Value(jdbc:mysql://localhost:3306/mysql)String url;Value(root)String usernmae;Value(123456)String password;Beanpublic DataSource dataSource(){DruidDataSource ds new DruidDataSource();ds.setDriverClassName(driverClassName);ds.setUrl(url);ds.setUsername(usernmae);ds.setPassword(password);return ds;} }引用类型注入 假如要注入引用类型需要在方法的参数里面写引用类型 package com.example.demo.config;import com.alibaba.druid.pool.DruidDataSource; import com.example.demo.dao.BookDao; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;Configuration public class JdbcConfig {Value(com.mysql.jdbc.Driver)String driverClassName;Value(jdbc:mysql://localhost:3306/mysql)String url;Value(root)String usernmae;Value(123456)String password;Beanpublic DataSource dataSource(BookDao bookDao){bookDao.save();DruidDataSource ds new DruidDataSource();ds.setDriverClassName(driverClassName);ds.setUrl(url);ds.setUsername(usernmae);ds.setPassword(password);return ds;} }因为我们已经注解了这个dataSource是个Bean所以对于方法里面的形参Spring会自动到IoC里面查找对应的类进行注入 6. XML配置比对注解配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交互效果很好的网站目前推广软件

Python PEP 8 代码风格指南 0. 引言1. 空白字符2. 命名3. 表达式和语句4. 导入5. Pylint工具6. 要点总结 0. 引言 Python增强提案#8,也称作 PEP 8,是关于如何格式化Python代码的风格指南。 你可以按自己的方式编写Python代码,只要符合有效的语法规则。 然而,使用一致的风格可…

wordpress网站添加备案号微商店铺怎么开通

几个主流的数据库有: 1. MySQL:MySQL是一种关系型数据库管理系统,常用于Web应用程序开发和数据存储。 2. Oracle:Oracle是一种关系型数据库管理系统,由Oracle Corporation开发和销售。它广泛用于企业级应用程序中。 …

如何给网站添加cnzz站长统计功能代码的常用办法长沙做网站企业

开源软件技术社区是一个由开发者、贡献者、用户和维护者组成的共享平台,主要目的是打造技术、软件产品良性互动、开源技术安全可控的软件生态环境,实现可复用应用或服务的快速部署与使用、完成资源与能力的高度共享、促进社区成员的共建共赢,…

策划案网站构成怎么写广州市官网网站建设公司

1、问题 //如果参数字符串是个回文,函数就返回真,否则返回假。回文就是指一个字符串从左向右和从右向左读是一样的。函数应该忽略所有的非字母字符,而且在进行字符比较时不用区分大小写。 2、代码实现 #include <stdio.h> #include <ctype.h>//如果参数字符串是…

湖南网站建设 地址磐石网络哈尔滨网站设计公司哪家更好

【本节目标】 树概念及结构。二叉树概念及结构。二叉树常见OJ题练习。 1、树概念及结构 1.1、树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一颗倒挂的树&#xf…

西安模板网站服务商更换模板对网站seo的影响

先说一下自己的情况&#xff0c;本科生&#xff0c;22年通过校招进入南京某软件公司&#xff0c;干了接近2年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

建立网站需要备案吗上海网站建设公司招聘

背景 分析Fabric网络的启动日志可以帮我们理解搭建区块链网络的过程。本文对输出日志进行详细的分析。 启动网络与创建通道 # verbose 可以输出更详细的日志。 ./network.sh up createChannel -verbose# 使用本机安装的docker and docker-compose Using docker and docker-c…

asp连接数据库做登录网站完整下载免费发布信息的网站平台

在使用Linq的时候经常出现在了这样的一个错误 Row not found or changed. 找不到行或行已更改 解决方案。 首要的解决方案是&#xff0c;检查数据库字段定义&#xff0c;是否有不一致的地方&#xff0c;尤其是 该字段是否可空 Nullable 第一个简单的方案就是 打开dbml (linq)文…

大学生网站建设例题答案寻找锦州网站建设

一、SpringBoot启动配置原理简述 本内容直接查看分析SpringBoot启动配置原理&#xff0c;传送门&#xff1a; 二、SpringBoot启动过程干预 Spring Boot启动过程中我们可以实现以下干预工作&#xff1a; 修改Spring Boot默认的配置属性。使用ConfigurationProperties和Enable…

重庆手机版建站系统哪家好1688会提供网站建设

Logo设计在设计的过程中要考虑很多问题&#xff0c;但是如果时间周期比较短&#xff0c;又要求快速出方案的时候&#xff0c;可以走一些捷径。 在设计logo之前要去了解公司的主营业务、公司规模、公司的名字、公司的主要产品针对的用户群体、甲方的个人偏好、公司原有VIS...这些…

怎么在网站标题做logo360网址导航主页

js 使用多态替换条件语句用多态替换条件语句是一种众所周知的重构模式。 如果您不熟悉该模式&#xff0c;可以在此处查看 。 但是&#xff0c;一旦类中有多个条件检查所基于的字段&#xff0c;该基本解决方案便会开始崩溃。 我们将研究一些有关如何使用这些可能性的想法。 有很…

厦门优秀的网站设计做业务查牙医诊所一般用什么网站

企业信息化规划如何落地&#xff1f; 规划做好了&#xff0c;蓝图也画好了&#xff0c;人手一块大饼也已经揣好了&#xff0c;那么该怎么落地呢&#xff0c;这才是最关键的。 我将企业信息化规划落地分为4个周期&#xff0c;以最典型的制造行业为例&#xff0c;以简道云这个企…

广元园区建设投资有限公司网站邵阳网站制作建设

下载 https://github.com/AntSwordProject/antSword 一句话木马 hack.php脚本 <?php eval($_POST[attack]);?> 安装 1、安装完成后启动 2、初始化&#xff0c;选择有源码的目录 3、连接

域名查询站长工具淘宝主图制作

词法分析程序的功能其实就是对所输入的字段进行词法分析任务&#xff0c;对用户的源程序从左到右进行扫描&#xff0c;按照语言的词法规则识别各类单词&#xff0c;并产生相应单词的属性字&#xff0c;并随之显现出来&#xff0c;成为词法分析程序的功能 转载于:https://www.cn…

dede分类信息网站东莞网站优化是什么

Java中如何解决ClassNotFoundException异常&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在Java编程中&#xff0c;ClassNotFoundException异常…

电子商务与网站建设结业论文百度在线咨询

俗话说&#xff0c;“酒香不怕巷子深”;俗话又说&#xff0c;“酒香也怕巷子深” 。再后来&#xff0c;俗话还说&#xff0c;管他酒香不香巷子深不深&#xff0c;只要找个算盘技巧神乎其神的账房先生&#xff0c;即数据科学家&#xff0c;酒就可以大卖了。这叫做用数据驱动用户…

石家庄那有建网站wordpress文章更新插件

目录 实验拓扑&#xff1a; 实验要求&#xff1a; 实验思路&#xff1a; 实验步骤&#xff1a; 1.配置设备接口IP 2.通过配置缺省路由让公网互通 3.配置ppp 1.R1和R5间的ppp的PAP认证&#xff1b; 2.R2与R5之间的ppp的CHAP认证; 3. R3与R5之间的HDLC封装; 4.构建R1、…

仁怀网站建设滁州做网站

概述&#xff1a; 这个仓库旨在通过一个单一的命令&#xff0c;有效地将新鲜且定制化的知识注入到大型语言模型中&#xff0c;以辅助开发人员的工作。 支持的模型&#xff1a;○ GPT-J (6B)○ LLaMA (7B/13B)○ BLOOM (7.1B)○ Falcon (7B)○ Baichuan (7B/13B)○ InternLM (7…

单网页网站 企业如何有效的推广网站

Ubuntu修改自启动软件或程序 在编译程序的时候发现速度很慢&#xff0c;查找发现自启动选项太多&#xff0c;cpu占用率越来越高&#xff0c;现在进行查询并修改权限。 1、查找当前进程 top2、选择相对于的服务查找是否自启动设置 systemctl list-unit-files该指令用以下显示…

如何引用404做网站wordpress好看博客主题

你好&#xff0c;我在我的(新手)Drupal站点有一个ajax调用这个问题。我试图从表单字段保存一些数据&#xff0c;通过jQuery发布到我的Drupal模块中的函数。这里是我的代码&#xff1a;在drupal中使用Ajax时要保持一个404// in drupalfunction mymodule_menu() {$items array()…