使用VS 2013并编写我的第一个ASP MVC应用程序。我有一个控制器:
import javax.inject.Inject;
import javax.inject.Named;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.Response;
import org.glassfish.hk2.api.Factory;
import org.glassfish.hk2.utilities.binding.AbstractBinder;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest;
import org.junit.Assert;
import org.junit.Test;
public class InjectionTest extends JerseyTest {
@Path("test")
public static class SimpleResource {
@Inject
@Named("Oracle")
private Repository repo;
@GET
public String getRepoName() {
return repo.getClass().getSimpleName();
}
}
@Override
public Application configure() {
ResourceConfig config = new ResourceConfig();
config.register(SimpleResource.class);
config.register(new AbstractBinder(){
@Override
protected void configure() {
bindFactory(SqlFactory.class)
.to(Repository.class).named("Sql");
bindFactory(OracleFactory.class)
.to(Repository.class).named("Oracle");
}
});
return config;
}
public static interface Repository {}
public static class OracleRepository implements Repository {}
public static class SqlRepository implements Repository {}
public static class SqlFactory implements Factory<Repository> {
@Override
public Repository provide() {
return new SqlRepository();
}
@Override
public void dispose(Repository t) {}
}
public static class OracleFactory implements Factory<Repository> {
@Override
public Repository provide() {
return new OracleRepository();
}
@Override
public void dispose(Repository t) {}
}
/**
* Change the `Assert` from "OracleRepository" to "SqlRepository"
* when switching the `@Named` on the injection point.
*/
@Test
public void testInjectOk() {
Response response = target("test").request().get();
String respString = response.readEntity(String.class);
Assert.assertEquals("OracleRepository", respString);
System.out.println(respString);
}
}
我希望向用户显示结果,并让他们能够返回作业视图。
我尝试了这个作为我的返回值:
返回内容(&#34;您要求创建作业ID和#34的捆绑和纸箱; + id.ToString()+&#34;
结果:&#34; + ReturnMessage +& #34;
返回工作岗位&#34;);
显示结果和链接:
但该链接指向http://localhost:59971/Jobs/CreateBandC/~/Jobs/而不是http://localhost:59971/Jobs/
我该如何解决?
有更好的方法可以返回结果吗?
我在一段时间的压力下,所以这种方法现在可以做,但我想知道如何返回更复杂的类型和更好的视图
由于
标记
答案 0 :(得分:0)
看起来这需要更改数据库来修复链接。这通常是由于设计不良和紧密耦合造成的。因此,进入数据库并更改存储过程中的a
标记以获得所需的结果。