- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在过去的 2 天里,我一直在为这个问题绞尽脑汁,但一直未能找到解决方案...
基本上,我有一个有两个下拉列表(果冻标签)的插件。其中一个填充了所有可用的项目类型,另一个填充了适用于先前选择的项目类型的构建器。我正在针对 Jenkins 版本 1.578 构建插件。
这是我的配置果冻:
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson"
xmlns:f="/lib/form">
<f:entry title="Projectname" field="projectName">
<f:textbox />
</f:entry>
<f:entry title="Build project after creation?" field="runProjectAfterCreation">
<f:checkbox />
</f:entry>
<f:entry title="Project configuration">
<f:entry title="Project / Job Type" field="projectType">
<f:select default="noTypeSelected" name="projectType"/>
</f:entry>
<f:entry title="Build Steps">
<f:repeatable var="buildSteps" items="buildSteps" minimum="1">
<table width="100%" bgcolor="#EEEEEE">
<div width="100%">
<f:entry field="buildStepType">
<f:select default="noBuildStepSelected" />
<f:repeatableDeleteButton value="Delete Build Step" />
</f:entry>
</div>
</table>
</f:repeatable>
</f:entry>
</f:entry>
</j:jelly>
projectType 下拉列表使用此函数可以很好地填充:
public ListBoxModel doFillProjectTypeItems() {
ListBoxModel items = new ListBoxModel();
items.add( "Bitte Projekttyp wählen", "noTypeSelected" );
for ( TopLevelItemDescriptor tliDescriptor : getAvailableJobTypes() ) {
items.add( tliDescriptor.getDisplayName(), tliDescriptor.getId() );
}
return items;
}
但是 buildStepType 没有。
public ListBoxModel doFillBuildStepTypeItems( @QueryParameter( "../projectType" ) final String projectType ) {
ListBoxModel items = new ListBoxModel();
if ( ( !projectType.equals( "noTypeSelected" ) ) && ( !projectType.equals( "hudson.maven.MavenModuleSet" ) ) ) {
try {
for ( BuildStepDescriptor<? extends Builder> buildStep : getAvailableBuilders( (Class<? extends AbstractProject<?, ?>>) Class
.forName( projectType ).asSubclass( AbstractProject.class ) ) ) {
items.add( buildStep.getDisplayName(), buildStep.getId() );
}
} catch ( ClassNotFoundException ex ) {
throw new RuntimeException( ex );
}
// Maven projects will throw a java.lang.ClassNotFoundException
} else if ( projectType.equals( "hudson.maven.MavenModuleSet" ) ) {
items.add( "Mavenprojects are not supported!", "mavenSelected" );
} else {
items.add( "Choose project type first, please!", "noProjectType" );
}
return items;
}
java.lang.reflect.InvocationTargetException
是由以下行中的 NullPointerException
引起的:
if ( ( !projectType.equals( "noTypeSelected" ) ) && ( !projectType.equals("hudson.maven.MavenModuleSet" ) ) )
因为 projectType 为空。显然 @QueryParameter
不会从第一个下拉列表中获取选定的值。不过它确实“知道它在那里”,因为当我选择新的项目类型时会调用该函数。
有人知道这个问题的解决方法吗?
最佳答案
希望这个答案还不算太晚。
可以看到
https://github.com/jenkinsci/jenkins/blob/jenkins-1.578/core/src/main/java/hudson/RelativePath.java
这里是用法:
public ListBoxModel doFillBuildStepTypeItems(
@QueryParameter("projectType") @RelativePath("..")
final String projectType ) {...}
关于java - Jenkins:doFill 函数没有正确获取@QueryParameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25724820/
我有一个方法,其中我需要根据某些计算覆盖查询参数的值: @GET @Path("/channel") @Produces(MediaType.APPLICATION_JSON) @OptimizedD
在过去的 2 天里,我一直在为这个问题绞尽脑汁,但一直未能找到解决方案... 基本上,我有一个有两个下拉列表(果冻标签)的插件。其中一个填充了所有可用的项目类型,另一个填充了适用于先前选择的项目类型的
我正在寻找集成以下堆栈的最佳实践 React 功能组件 Redux 状态 从 URL 查询参数 基本上我有带有复杂过滤器组件的搜索页面那就是处理页面上的过滤可能性。 这些过滤器由下拉列表和复选框组成。
我的网址如 http://example.com/foo/?locale=en_US&xyz ,当我在 URL 上执行 getQueryString() 时,我返回一个空字符串 我正在 URL 上执行
我有这种奇怪的行为,当我在装有 iOs 5.1 的 iPhone 3G 上运行时,我的一个类别方法被覆盖了。 我有这个类别: @interface NSURL (queryParameters)
我的状态如下所示: $stateProvider.state('base', { url: '/base', redirectTo: 'base.all', template: '' })
我天真地创建了一个使用 java.util.BitSet 作为 QueryParameter 的 restful 处理程序。 @QueryParam("selectedCodes") BitSet s
我正在使用 Dio 进行调用,使用映射构造函数发送一些查询参数 response = await Dio().get(url, queryParameters: { "apikey": p
我可以在 SAM 中生成这样的事件 sam local generate-event apigateway aws-proxy --method GET --path document --body
.Net 毛伊岛 我正在将一个对象传递给页面/ View 模型,但它在构造函数中为空。我需要从中派生一些数据以传回 XAML 页面,但我不知道它何时或如何在 View 模型中设置。 我相信这里使用的
我是一名优秀的程序员,十分优秀!