是否可以.serialize()通过单个.serialize()请求发送对象和其他参数?
例:
$.ajax({
type : 'POST',
url : 'url',
data : {
$('#form').serialize(),
par1 : 1,
par2 : '2',
par3: 232
}
}
Run Code Online (Sandbox Code Playgroud)
如果不是,那么将表单与其他参数一起提交的最佳方式是什么.
谢谢
我使用JPA进行数据库访问,并使用正确的名称注释每一列.现在如果我执行查询(例如findAll())它返回
Unknown column 'program0_.program_id' in 'field list'
Run Code Online (Sandbox Code Playgroud)
错误消息是正确的program_id是未知的,因为真实姓名是programId.
型号:程序
@Entity
@Table(name = "programs")
@XmlRootElement
public class Program implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "programId")
private Long programId;
@ManyToMany
@JoinTable(
name = "programlabels",
joinColumns = {
@JoinColumn(name = "program", referencedColumnName = "programId")},
inverseJoinColumns = {
@JoinColumn(name = "label", referencedColumnName = "labelId")})
private Collection<Label> labels;
}
Run Code Online (Sandbox Code Playgroud)
标签
@Entity
@Table(name = "labels")
@XmlRootElement
public class Label implements Serializable {
@Id
@Basic(optional …Run Code Online (Sandbox Code Playgroud) 我的构造函数具有可选参数,它们似乎混淆了主要的DI方式.
constructor(public name:string, public age?:number, private _service:Service);
Run Code Online (Sandbox Code Playgroud)
打字稿可以理解地不喜欢我在可选参数后面放置一个非可选参数,此外,当未设置可选参数时,不会注入服务.我该如何解决?我不能把它放在构造函数中的其他地方,因为我希望手动设置服务.
有没有像野外注射?
@Inject() private _service:Service;
constructor(public name:string, public age?:number);
Run Code Online (Sandbox Code Playgroud)
我应该用默认值替换可选参数吗?还有其他建议吗?
编辑: 如下所述,我试图将一个服务注入一个不是由Angular的DI创建的对象.这不起作用.由于我无法使用DI创建此类(模型),因此我现在从实例化此对象的类中手动传递服务.
我试图通过C#应用程序执行具有管理员权限的程序,该应用程序仅使用用户权限进行调用.
码
ProcessStartInfo psi;
try
{
psi = new ProcessStartInfo(@"WINZIP32.EXE");
psi.UseShellExecute = false;
SecureString pw = new SecureString();
pw.AppendChar('p');
pw.AppendChar('a');
pw.AppendChar('s');
pw.AppendChar('s');
pw.AppendChar('w');
pw.AppendChar('o');
pw.AppendChar('r');
pw.AppendChar('d');
psi.Password = pw;
psi.UserName = "administrator";
Process.Start(psi);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
它确实启动winzip,但仅限用户权限.有什么我做错了,或者甚至有可能开始一个更高权利的过程?
谢谢!
编辑:这是问题背后的原因,也许它有助于理解我真正需要的东西.
我以winzip为例,大致了解了我的代码是不正确的.实际问题是,我们公司使用2个版本的程序.但在启动任何版本之前,您需要使用regsvr32(具有管理员权限)导入dll文件.现在我想编写一个程序,让用户选择版本,导入dll并启动正确的应用程序.
我的应用程序在后端使用Spring Boot,在前端使用SPA(Angular)站点.目前我正在从webapp文件夹中提供index.html页面,该页面自动运行,无需配置.现在我使用gulp为前端集成了一个构建过程,并将所有创建的源"复制"到一个build目录中.现在我想将目录中的index.html文件build作为主页提供.
我尝试了spring.application.index=build/index.html一些其他弹簧启动设置,但没有任何效果.我相信我目前的代码库不需要任何代码,但如果遗漏任何内容,请告诉我.
有没有办法在applications.properties文件中配置它?我是否需要为索引页面创建控制器?或者还有其他方法可以更改默认行为吗?
谢谢
我正在开发Spring启动(MVC,JPA)应用程序,并且需要在不同的请求上返回不同的属性.我找到了@JsonView注释,它似乎工作.但是,我是否需要使用基本视图注释每个属性?
例:
ENTITY1
@Entity
public class Entity1 implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@JsonView(JsonViews.ExtendedView.class)
private String name;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "entity1", fetch = FetchType.EAGER)
List<Entity2> entities2;
@JsonView(JsonView.ExtendedView.class)
@OneToMany(cascade = CascadeType.ALL, mappedBy = "entity1", fetch = FetchType.LAZY)
List<Entity3> entities3;
}
Run Code Online (Sandbox Code Playgroud)
ENTITY2
@Entity
public class Entity2 implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
}
Run Code Online (Sandbox Code Playgroud)
ENTITY3
@Entity
public class Entity3 implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private …Run Code Online (Sandbox Code Playgroud) 我从两个不同的服务器为我的前端和后端提供服务.现在我试图让CORS在Spring-Boot-Jersey后端工作.我尝试了在互联网上找到的所有东西,但似乎没有任何工作,或者我错过了一些东西.
我目前的设置使用了ContainerResponseFilter.我尝试@Provider在Jersey配置中自动注册并手动注册.
ContainerResponseFilter
@Provider
public class CORSFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext request,
ContainerResponseContext response) throws IOException {
response.getHeaders().add("Access-Control-Allow-Origin", "*");
response.getHeaders().add("Access-Control-Allow-Headers",
"origin, content-type, accept, authorization");
response.getHeaders().add("Access-Control-Allow-Credentials", "true");
response.getHeaders().add("Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE, OPTIONS, HEAD");
}
}
Run Code Online (Sandbox Code Playgroud)
也许它很重要,但我也Spring-Security-oauth2通过添加@EnableOAuth2Sso注释使用.如果您需要更多我的设置,请告诉我.
我想扩展Promise和更改then签名,以便其回调接收两个值.我尝试了不同的方法,其中两个在此处记录和测试.可悲的是,我得到了各种错误,或者由此产生的类不像Promise.
方法1:包装本机承诺
export class MyWrappedPromise {
constructor(data) {
this.data = data;
this.promise = new Promise(evaluate.bind(data));
}
then(callback) {
this.promise.then(() => callback(this.data, ADDITIONAL_DATA));
}
catch(callback) {
this.promise.catch(callback);
}
}
Run Code Online (Sandbox Code Playgroud)
方法2:扩展本机承诺
export class MyExtendedPromise extends Promise {
constructor(executor, data) {
super(executor);
this.data = data;
}
static create(data) {
return new MyExtendedPromise(evaluate.bind(data), data);
}
then(callback) {
return super.then(() => callback(this.data, ADDITIONAL_DATA));
}
}
Run Code Online (Sandbox Code Playgroud)
有没有人对我做错了什么有任何建议?随意在GitHub上创建PR.
谢谢
-------------------编辑---------------------
一些额外的代码和信息使得上面的代码更容易理解,而无需查看Github上的代码和测试.
evaluate只是Promise执行者函数.我把它解压出来,这样我就可以在所有的实现和测试中保持一致.它可能看起来很复杂,但它的结构是模拟我的"真实"项目.
export function evaluate(resolve, reject) {
const …Run Code Online (Sandbox Code Playgroud) 有没有办法在@Query标签中使用"包含"功能?如果不是,实现这个的最佳方法是什么?
例:
@Query("From User u where u.roles contains :role")
List<User> findByRole(@Param("role") Role role);
Run Code Online (Sandbox Code Playgroud)
这User堂课确实Collection包含了他们的Roles.
编辑:正如我所建议的那样,应用程序启动,但是当执行此方法时,会发生"不匹配的预期类型"异常.
java ×6
spring ×6
spring-boot ×4
jpa ×2
.net ×1
admin-rights ×1
ajax ×1
angular ×1
c# ×1
es6-promise ×1
forms ×1
hibernate ×1
jackson ×1
javascript ×1
jdbc ×1
jersey-2.0 ×1
jquery ×1
process ×1
promise ×1
proxy ×1
spring-mvc ×1
typescript ×1