我想打开另一个网址,让我们说:来自cakePHP页面的'localhost / test.html'。
我已经有了一个视图(page.ctp)和控制器(PagesController.php)。在这个页面上有一个名为Wireshark的按钮,每当我点击这个按钮时,我想转到另一个URL,但不想重定向到cakePHP服务器中的另一个页面。
在page.ctp中我使用:
public void reduce(Text key, Iterable<Text> values, Context context)
throws IOException, InterruptedException {
String[] value;
String[] k;
// key=(i,k),
// Values = [(M/N,j,V/W),..]
k = key.toString().split(",");
HashMap<Integer, Integer> hashA = new HashMap<Integer, Integer>();
HashMap<Integer, Integer> hashB = new HashMap<Integer, Integer>();
int i = 0, j = 0;
//check values
for (Text val : values) {
value = val.toString().split(",");
if (value[0].equals("M")) {
hashA.put(Integer.parseInt(value[1]),
Integer.parseInt(value[2]));
} else {
hashB.put(Integer.parseInt(value[1]),
Integer.parseInt(value[2]));
}
}
//some codes to produce result value
int n = 4, result = 101, m_ij , n_jk , t;
for (int r = 1; r <= n; r++) {
m_ij = hashA.containsKey(r) ? hashA.get(r) : 101;
n_jk = hashB.containsKey(r) ? hashB.get(r) : 101;
t = m_ij + n_jk;
//finding minimum value
result = result > t ? t : result;
}
context.write(null, new Text(key.toString() + ","+ Integer.toString(result)));
}
在TestsController中:
public void reduce(Text key, Iterable<Text> values, Context context)
throws IOException, InterruptedException {
String[] value;
String[] k;
// key=(i,k),
// Values = [(M/N,j,V/W),..]
k = key.toString().split(",");
HashMap<Integer, Integer> hashA = new HashMap<Integer, Integer>();
HashMap<Integer, Integer> hashB = new HashMap<Integer, Integer>();
int i = 0, j = 0;
//check values
for (Text val : values) {
value = val.toString().split(",");
if (value[0].equals("M")) {
hashA.put(Integer.parseInt(value[1]),
Integer.parseInt(value[2]));
} else {
hashB.put(Integer.parseInt(value[1]),
Integer.parseInt(value[2]));
}
}
//some codes to produce result value
int n = 4, result = 101, m_ij , n_jk , t;
for (int r = 1; r <= n; r++) {
m_ij = hashA.containsKey(r) ? hashA.get(r) : 101;
n_jk = hashB.containsKey(r) ? hashB.get(r) : 101;
t = m_ij + n_jk;
//finding minimum value
result = result > t ? t : result;
}
context.write(null, new Text(key.toString() + ","+ Integer.toString(result)));
}
在wireshark.ctp:
直到我点击按钮,它才会将我重定向到“http://localhost:9877/tests/wireshark”并显示“你好”。我认为它工作正常,但我需要的是转到另一个网页(localhost / test.html)。
我也在同一个文件中试过这个:
<?php echo $this->Html->link(__('Wireshark'), array('controller' => 'tests','action' => 'wireshark'))?>
当我使用上面的代码时,我得到了这个:
错误:找不到请求的地址'/pages/localhost/test.html' 在这台服务器上。
我是全新的,自学蛋糕PHP。我用谷歌搜索了,但没有一篇帖子让我详细解释了如何做到这一点(可能是因为我对此很新)。
任何人都可以帮助我。如果不清楚,我很抱歉请向我澄清。
谢谢
答案 0 :(得分:1)
将http://添加到网址
<a href="http://localhost/test.html" target="_blank">
Wireshark
</a>
<!-- or-->
<?= $this->Html->link(
__('Wireshark'),
'http://localhost/test.html',
[
'target' => '_blank',
]
) ?>
答案 1 :(得分:0)
好吧,让我解释一下。
Wireshark
的第一个关键字代表href
Tests
代表您的控制器和wiresha
是您的控制器的action
希望对你有所帮助。
echo $this->Html->link('Wireshark',array('controller'=>'Tests','action'=>'wireshark'), array('target'=>'_blank'));